home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / inter54b.zip / MEMORY.LST < prev    next >
File List  |  1997-06-29  |  93KB  |  2,401 lines

  1. MEMORY MAP            Release 54        Last change 29jun97
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3.  
  4. --------H-M00000000--------------------------
  5. MEM 0000h:0000h R - INTERRUPT VECTOR TABLE
  6. Size:    1024 BYTEs
  7. Note:    see also the main interrupt list
  8. --------b-M0000031D--------------------------
  9. MEM 0000h:031Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 47 HARD DISK PARMS
  10. Size:    16 BYTEs
  11. Note:    these fields are used if the AMI BIOS setup is set to use the top of
  12.       the interrupt table for the extended BIOS data area
  13. SeeAlso: MEM 0000h:032Dh,INT 41
  14. --------b-M0000032D--------------------------
  15. MEM 0000h:032Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 48 HARD DISK PARMS
  16. Size:    16 BYTEs
  17. Note:    these fields are used if the AMI BIOS setup is set to use the top of
  18.       the interrupt table for the extended BIOS data area
  19. SeeAlso: MEM 0000h:031Dh,INT 46
  20. --------B-M00000400--------------------------
  21. MEM 0000h:0400h - BIOS DATA AREA
  22. Size:    256 BYTEs
  23. Note:    see also the MEM 0040h:xxxxh entries
  24. ----------M00000500--------------------------
  25. MEM 0000h:0500h - DATA AREA
  26. Size:    256 BYTEs
  27. --------D-M00000600--------------------------
  28. MEM 0000h:0600h - MS-DOS 1.x LOAD ADDRESS
  29. --------D-M00000700--------------------------
  30. MEM 0000h:0700h - MS-DOS 2+ LOAD ADDRESS
  31. --------S-M00400000--------------------------
  32. MEM 0040h:0000h - BASE I/O ADDRESS OF FIRST SERIAL I/O PORT
  33. Size:    WORD
  34. Notes:    the BIOS sets this word to zero if is unable to find any serial ports
  35.       at the addresses it is programmed to check at boot
  36.     DOS and BIOS serial device numbers may be redefined by re-assigning
  37.       these values of the base I/O addresses stored here
  38. SeeAlso: MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:0008h
  39. SeeAlso: MEM 0040h:007Ch
  40. --------S-M00400002--------------------------
  41. MEM 0040h:0002h - BASE I/O ADDRESS OF SECOND SERIAL I/O PORT
  42. Size:    WORD
  43. Note:    the BIOS sets this word to zero if is unable to find more than one
  44.       serial port at the addresses it is programmed to check at boot
  45. SeeAlso: MEM 0040h:0000h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:000Ah
  46. SeeAlso: MEM 0040h:007Dh
  47. --------S-M00400004--------------------------
  48. MEM 0040h:0004h - BASE I/O ADDRESS OF THIRD SERIAL I/O PORT
  49. Size:    WORD
  50. Note:    the BIOS sets this word to zero if is unable to find more than two
  51.       serial ports at the addresses it is programmed to check at boot
  52. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0006h,MEM 0040h:000Ch
  53. SeeAlso: MEM 0040h:007Eh
  54. --------S-M00400006--------------------------
  55. MEM 0040h:0006h - BASE I/O ADDRESS OF FOURTH SERIAL I/O PORT
  56. Size:    WORD
  57. Note:    the BIOS sets this word to zero if is unable to find more than three
  58.       serial ports at the addresses it is programmed to check at boot
  59. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0008h
  60. SeeAlso: MEM 0040h:007Fh
  61. --------P-M00400008--------------------------
  62. MEM 0040h:0008h - BASE I/O ADDRESS OF FIRST PARALLEL I/O PORT
  63. Size:    WORD
  64. Notes:    the BIOS POST routine fills in the parallel port address fields in
  65.       turn as it finds parallel ports.  All fields beyond the last one
  66.       for which a valid parallel port was found are set to zero.
  67.     the BIOS INT 17 handler uses these fields to address the parallel
  68.       ports
  69. SeeAlso: MEM 0040h:0000h,MEM 0040h:000Ah,MEM 0040h:000Ch
  70. --------P-M0040000A--------------------------
  71. MEM 0040h:000Ah - BASE I/O ADDRESS OF SECOND PARALLEL I/O PORT
  72. Size:    WORD
  73. Note:    zero if fewer than two parallel ports installed
  74. SeeAlso: MEM 0040h:0002h,MEM 0040h:0008h,MEM 0040h:000Ch
  75. --------P-M0040000C--------------------------
  76. MEM 0040h:000Ch - BASE I/O ADDRESS OF THIRD PARALLEL I/O PORT
  77. Size:    WORD
  78. Note:    zero if fewer than three parallel ports installed
  79. SeeAlso: MEM 0040h:0004h,MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh
  80. --------P-M0040000E--------------------------
  81. MEM 0040h:000Eh - BASE I/O ADDRESS OF FOURTH PARALLEL I/O PORT (pre-PS/2)
  82. Size:    WORD
  83. Note:    zero if fewer than four parallel ports installed
  84. SeeAlso: MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh"BIOS DATA"
  85. --------B-M0040000E--------------------------
  86. MEM 0040h:000Eh - SEGMENT OF EXTENDED BIOS DATA SEGMENT (PS/2, newer BIOSes)
  87. Size:    WORD
  88. SeeAlso: MEM 0040h:000Eh"PARALLEL"
  89.  
  90. Format of Extended BIOS Data Area (IBM):
  91. Offset    Size    Description    (Table M001)
  92.  00h    BYTE    length of EBDA in kilobytes
  93.  01h 15 BYTEs    reserved
  94.  17h    BYTE    number of entries in POST error log (0-5)
  95.  18h  5 WORDs    POST error log (each word is a POST error number)
  96.  22h    DWORD    Pointing Device Driver entry point
  97.  26h    BYTE    Pointing Device Flags 1 (see #M002)
  98.  27h    BYTE    Pointing Device Flags 2 (see #M003)
  99.  28h  8 BYTEs    Pointing Device Auxiliary Device Data
  100.  30h    DWORD    Vector for INT 07h stored here during 80387 interrupt
  101.  34h    DWORD    Vector for INT 01h stored here during INT 07h emulation
  102.  38h    BYTE    Scratchpad for 80287/80387 interrupt code
  103.  39h    WORD    Timer3: Watchdog timer initial count
  104.  3Bh    BYTE    ??? seen non-zero on Model 30
  105.  3Ch    BYTE    ???
  106.  3Dh 16 BYTEs    Fixed Disk parameter table for drive 0 (for older machines
  107.           which don't directly support the installed drive)
  108.  4Dh 16 BYTEs    Fixed Disk parameter table for drive 1 (for older machines
  109.           which don't directly support the installed drive)
  110.  5Dh-67h    ???
  111.  68h    BYTE    cache control
  112.         bits 7-2 unused (0)
  113.         bit 1: CPU cache failed test
  114.         bit 0: CPU cache disabled
  115.  69h-6Bh    ???
  116.  6Ch    BYTE    Fixed disk: (=FFh on ESDI systems)
  117.             bits 7-4: Channel number 00-0Fh
  118.             bits 3-0: DMA arbitration level 00-0Eh
  119.  6Dh    BYTE    ???
  120.  6Eh    WORD    current typematic setting (see INT 16/AH=03h)
  121.  70h    BYTE    number of attached hard drives
  122.  71h    BYTE    hard disk 16-bit DMA channel
  123.  72h    BYTE    interrupt status for hard disk controller (1Fh on timeout)
  124.  73h    BYTE    hard disk operation flags
  125.         bit 7: controller issued operation-complete INT 76h
  126.         bit 6: controller has been reset
  127.         bits 5-0: unused (0)
  128.  74h    DWORD    old INT 76h vector
  129.  78h    BYTE    hard disk DMA type
  130.         typically 44h for reads and 4Ch for writes
  131.  79h    BYTE    status of last hard disk operation
  132.  7Ah    BYTE    hard disk timeout counter
  133.  7Bh-7Dh
  134.  7Eh  8 WORDs    storage for hard disk controller status
  135.  8Eh-E6h
  136.  E7h    BYTE    floppy drive type
  137.         bit 7: drive(s) present
  138.         bits 6-2: unused (0)
  139.         bit 1: drive 1 is 5.25" instead of 3.5"
  140.         bit 0: drive 0 is 5.25"
  141.  E8h  4 BYTEs    ???
  142.  ECh    BYTE    hard disk parameters flag
  143.         bit 7: parameters loaded into EBDA
  144.         bits 6-0: unused (0)
  145.  EDh    BYTE    ???
  146.  EEh    BYTE    CPU family ID (03h = 386, 04h = 486, etc.) (see INT 15/AH=C9h)
  147.  EFh    BYTE    CPU stepping (see INT 15/AH=C9h)
  148.  F0h 39 BYTEs    ???
  149. 117h    WORD    keyboard ID (see INT 16/AH=0Ah)
  150.         (most commonly 41ABh)
  151. 119h    BYTE    ???
  152. 11Ah    BYTE    non-BIOS INT 18h flag
  153.         bits 7-1: unused (0)
  154.         bit 0: set by BIOS before calling user INT 18h at offset 11Dh
  155. 11Bh  2 BYTE    ???
  156. 11Dh    DWORD    user INT 18h vector if BIOS has re-hooked INT 18h
  157. 121h and up:    ??? seen non-zero on Model 60
  158. 3F0h    BYTE    Fixed disk buffer (???)
  159. SeeAlso: #M004
  160.  
  161. Bitfields for Pointing Device Flags 1:
  162. Bit(s)    Description    (Table M002)
  163.  7    command in progress
  164.  6    resend byte (FAh) received
  165.  5    acknowledge byte (FEh) received
  166.  4    error byte (FCh) received
  167.  3    unexpected value received
  168.  2-0    index count for auxiliary device data at 28h
  169. SeeAlso: #M001,#M003
  170.  
  171. Bitfields for Pointing Device Flags 2:
  172. Bit(s)    Description    (Table M003)
  173.  7    device driver far call flag
  174.  6-3    reserved
  175.  2-0    package size (number of bytes received) - 1
  176. SeeAlso: #M001,#M002
  177.  
  178. Format of Extended BIOS Data Area (AMI v1.00.12.AX1T):
  179. Offset    Size    Description    (Table M004)
  180.  00h    BYTE    length of XBDA in kilobytes
  181.  01h 15 BYTEs    reserved
  182.  17h    BYTE    number of entries in POST error log (0-10)
  183.  18h 10 BYTEs    unused???
  184.  22h    DWORD    Pointing Device Driver entry point
  185.  26h    BYTE    Pointing Device Flags 1 (see #M002)
  186.  27h    BYTE    Pointing Device Flags 2 (see #M003)
  187.  28h  8 BYTEs    Pointing Device Auxiliary Device Data
  188.  30h 13 BYTEs    ???
  189.  3Dh 16 BYTEs    Fixed Disk parameter table for drive 0
  190.  4Dh 16 BYTEs    Fixed Disk parameter table for drive 1
  191.  5Dh 16 BYTEs    parameter table for drive 2???
  192.  6Dh 16 BYTEs    parameter table for drive 3???
  193.  80h 56 BYTEs?    IDE drive 0 manufacturer/model string
  194.  B8h 41 BYTEs    AMIBIOS copyright string
  195.  E1h        unused???
  196. 102h    WORD    ??? flags
  197.         bit 15: ???
  198. 108h    WORD    offset of IntelIDECfgTbl (IDE configuration settings) within
  199.           segment F000h
  200. 10Ah  2 BYTEs    ???
  201. 10Ch    DWORD    pointer to routine to call for language-specific error messages
  202. 110h    WORD    offset in segment F000h of end of currently-loaded optional
  203.           BIOS subsystems (language, APM, etc.)
  204. 112h    WORD    offset in segment F000h of end of area avaiable for loading
  205.           optional BIOS subsystems
  206. 1F0h    BYTE    APM status flags
  207. 1F1h  8 BYTEs    APM power-state data for device classes 01h-06h
  208.         bits 0-3: current power state for devices 00h-03h in class
  209.         bits 7-4: current engaged state for devices 00h-03h in class
  210. 1F9h  4 BYTEs    APM power-state data for device classes 01h-08h (four devices
  211.           per class)
  212. 1FDh  3 BYTEs    ???
  213. 200h 10 WORDs    POST error log
  214. 214h    ???
  215. SeeAlso: #M001,#M005
  216.  
  217. Format of Extended BIOS Data Area (PhoenixBIOS 4.0):
  218. Offset    Size    Description    (Table M005)
  219.  00h    BYTE    length of XBDA in kilobytes
  220.  01h 33 BYTEs    reserved
  221.  22h    DWORD    Pointing Device Driver entry point
  222.  26h    BYTE    Pointing Device Flags 1 (see #M002)
  223.  27h    BYTE    Pointing Device Flags 2 (see #M003)
  224.  28h  8 BYTEs    Pointing Device Auxiliary Device Data
  225. SeeAlso: #M001,#M004
  226. --------B-M00400010--------------------------
  227. MEM 0040h:0010h - INSTALLED HARDWARE
  228. Size:    WORD
  229.  
  230. Bitfields for BIOS-detected installed hardware:
  231. Bit(s)    Description    (Table M006)
  232.  15-14    number of parallel devices
  233.     00 or 11 sometimes used to indicate four LPT ports
  234.  13    (Convertible, PS/2-55LS) internal modem
  235.  12    game port installed
  236.  11-9    number of serial devices
  237.     000 or 111 sometimes used to indicate eight COM ports
  238.  8    reserved
  239.  7-6    number of floppy disk drives (minus 1)
  240.  5-4    initial video mode
  241.     00 EGA,VGA,PGA, or other with on-board video BIOS
  242.     01 40x25 CGA color
  243.     10 80x25 CGA color
  244.     11 80x25 mono text
  245.  3-2    (PC only) RAM on motherboard
  246.     00 = 16K, 01 = 32K, 10 = 48K, 11 = 64K
  247.  2    (pre-PS/2 except PC) reserved
  248.     (PS/2, newer BIOSes) pointing device installed
  249.  1    math coprocessor installed
  250.  0    floppy disk drives are installed
  251.     booted from floppy
  252. --------B-M00400012--------------------------
  253. MEM 0040h:0012h - Convertible - POST STATUS
  254. Size:    BYTE
  255. --------B-M00400012--------------------------
  256. MEM 0040h:0012h U - AT - MANUFACTURING TEST INITIALIZATION FLAGS
  257. Size:    BYTE
  258.  
  259. Bitfields for AT manufacturing test initialization flags:
  260. Bit(s)    Description    (Table M007)
  261.  0    start in manufacturing test mode rather than normal operation
  262.  1-7    unused
  263. --------b-M00400012--------------------------
  264. MEM 0040h:0012h - MCA - MANUFACTURING TEST
  265. Size:    BYTE
  266.  
  267. Bitfields for MCA manufacturing test flags :
  268. Bit(s)    Description    (Table M008)
  269.  7    POST flag, ???
  270.  6-5    unused
  271.  4    POST flag, slot 4 has adapter identifier EDAFh
  272.  3    POST flag, 80x25 color video
  273.  2    POST flag, ???
  274.  1    unused
  275.  0    manufacturing test mode rather than normal operation
  276. --------b-M00400012--------------------------
  277. MEM 0040h:0012h - PS/2 Model 25 - POST SYSTEM FLAG
  278. Size:    BYTE
  279.  
  280. Bitfields for PS/2 Model 25 POST sytem flag :
  281. Bit(s)    Description    (Table M009)
  282.  0    optional memory failed; memory remapped
  283.  1    real-time clock installed
  284. --------B-M00400013--------------------------
  285. MEM 0040h:0013h - BASE MEMORY SIZE IN KBYTES
  286. Size:    WORD
  287. --------b-M00400015--------------------------
  288. MEM 0040h:0015h - PC, XT - ADAPTER MEMORY SIZE IN KBYTES
  289. Size:    WORD
  290. --------b-M00400015--------------------------
  291. MEM 0040h:0015h U - AT - MANUFACTURING TEST SCRATCH PAD
  292. Size:    BYTE
  293. --------K-M00400015--------------------------
  294. MEM 0040h:0015h - Compaq Deskpro 386 - PREVIOUS SCAN CODE
  295. Size:    BYTE
  296. --------b-M00400016--------------------------
  297. MEM 0040h:0016h U - AT - MANUFACTURING TEST SCRATCH PAD
  298. Size:    BYTE
  299. --------b-M00400016--------------------------
  300. MEM 0040h:0016h U - PS/2 Model 30 - BIOS CONTROL FLAGS
  301. Size:    BYTE
  302. --------K-M00400016--------------------------
  303. MEM 0040h:0016h - Compaq Deskpro 386 - KEYCLICK VOLUME
  304. Size:    BYTE
  305. Range:    00h-7Fh
  306. --------K-M00400017--------------------------
  307. MEM 0040h:0017h - KEYBOARD - STATUS FLAGS 1
  308. Size:    BYTE
  309. SeeAlso: MEM 0040h:0018h,INT 16/AH=02h,MEM 0040h:0096h
  310.  
  311. Bitfields for keyboard status flags 1:
  312. Bit(s)    Description    (Table M010)
  313.  7    INSert active
  314.  6    Caps Lock active
  315.  5    Num Lock active
  316.  4    Scroll Lock active
  317.  3    either Alt pressed
  318.  2    either Ctrl pressed
  319.  1    Left Shift pressed
  320.  0    Right Shift pressed
  321. SeeAlso: #M011,#0504
  322. --------K-M00400018--------------------------
  323. MEM 0040h:0018h - KEYBOARD - STATUS FLAGS 2
  324. Size:    BYTE
  325. SeeAlso: MEM 0040h:0017h,INT 16/AH=12h
  326.  
  327. Bitfields for keyboard status flags 2 :
  328. Bit(s)    Description    (Table M011)
  329.  7    INSert pressed
  330.  6    Caps Lock pressed
  331.  5    Num Lock pressed
  332.  4    Scroll Lock pressed
  333.  3    Pause state active
  334.  2    Sys Req pressed
  335.  1    Left Alt pressed
  336.  0    Left Ctrl pressed
  337. SeeAlso: #M010,#0505
  338. --------K-M00400019--------------------------
  339. MEM 0040h:0019h - KEYBOARD - ALT-nnn KEYPAD WORKSPACE
  340. Size:    BYTE
  341. Desc:    holds the current value of an Alt-NNN keypad sequence; when Alt is
  342.       released and this byte is non-zero, the appropriate character is
  343.       placed in the keyboard buffer
  344. SeeAlso: INT 16/AH=00h
  345. --------K-M0040001A--------------------------
  346. MEM 0040h:001Ah - KEYBOARD - POINTER TO NEXT CHARACTER IN KEYBOARD BUFFER
  347. Size:    WORD
  348. SeeAlso: MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  349. --------K-M0040001C--------------------------
  350. MEM 0040h:001Ch - KEYBOARD - POINTER TO FIRST FREE SLOT IN KEYBOARD BUFFER
  351. Size:    WORD
  352. SeeAlso: MEM 0040h:001Ah,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  353. --------K-M0040001E--------------------------
  354. MEM 0040h:001Eh - KEYBOARD - DEFAULT KEYBOARD CIRCULAR BUFFER
  355. Size:    16 WORDs
  356. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h
  357. SeeAlso: INT 16/AH=00h
  358. --------B-M0040003E--------------------------
  359. MEM 0040h:003Eh - DISKETTE - RECALIBRATE STATUS
  360. Size:    BYTE
  361. SeeAlso: MEM 0040h:003Fh,MEM 0040h:0040h
  362.  
  363. Bitfields for diskette recalibrate status:
  364. Bit(s)    Description    (Table M012)
  365.  7    diskette hardware interrupt occurred
  366.  6-4    reserved
  367.  3    recalibrate diskette 3 (PC,XT only)
  368.  2    recalibrate diskette 2 (PC,XT only)
  369.  1    recalibrate diskette 1
  370.  0    recalibrate diskette 0
  371. --------B-M0040003F--------------------------
  372. MEM 0040h:003Fh - DISKETTE - MOTOR STATUS
  373. Size:    BYTE
  374. SeeAlso: MEM 0040h:003Eh,MEM 0040h:0040h
  375.  
  376. Bitfields for diskette motor status:
  377. Bit(s)    Description    (Table M013)
  378.  7    current operation is write or format, rather than read or verify
  379.  6    reserved (DMA enabled on 82077)
  380.  5-4    diskette drive number selected (0-3)
  381.  3    diskette 3 motor on (PC,XT only)
  382.  2    diskette 2 motor on (PC,XT only)
  383.  1    diskette 1 motor on
  384.  0    diskette 0 motor on
  385. --------B-M00400040--------------------------
  386. MEM 0040h:0040h - DISKETTE - MOTOR TURN-OFF TIMEOUT COUNT
  387. Size:    BYTE
  388. Desc:    number of clock ticks until diskette motor is turned off
  389. Note:    the typical implementation of the timeout is to have the INT 08 
  390.       handler decrement this byte on every clock tick, and force the
  391.       diskette motor off if the result is equal to zero
  392. SeeAlso: MEM 0040h:003Eh,MEM 0040h:003Fh,MEM 0040h:0041h
  393. --------B-M00400041--------------------------
  394. MEM 0040h:0041h - DISKETTE - LAST OPERATION STATUS
  395. Size:    BYTE
  396. SeeAlso: MEM 0040h:003Eh
  397.  
  398. Bitfields for diskette last operation status:
  399. Bit(s)    Description    (Table M014)
  400.  7    drive not ready
  401.  6    seek error
  402.  5    general controller failure
  403.  4-0    error reason
  404.     00h no error
  405.     01h invalid request/parameter
  406.     02h address mark not found
  407.     03h write-protect error
  408.     04h sector not found
  409.     06h diskette change line active
  410.     08h DMA overrun
  411.     09h DMA across 64k boundary
  412.     0Ch media type unknown
  413.     10h CRC error on read
  414. Note:    the following values for this byte differ somewhat from the
  415.       bitfield definition above:
  416.         30h drive does not support media sense
  417.         31h no media in drive
  418.         32h drive does not support media type
  419.         AAh diskette drive not ready
  420. --------B-M00400042--------------------------
  421. MEM 0040h:0042h - DISK - FLOPPY/HARD DRIVE STATUS/COMMAND BYTES
  422. Size:    7 BYTEs
  423.  
  424.     42h BYTE    XT: command byte to hard disk controller
  425.         AT: write precompensation cylinder number / 4
  426.     43h    BYTE    XT: bit 5 = drive number, bits 3-0=head number
  427.         AT: sector count
  428.     44h BYTE    XT: bits 6,7 = high bits of track, bits 5-0 = start sector-1
  429.         AT: starting sector
  430.     45h BYTE    low byte of track number
  431.     46h BYTE    XT: sector count
  432.         AT: high bits of track number
  433.     47h BYTE    XT: controlbyte from HD parameters (step rate,...)
  434.         AT: 101DHHHH, D=drive number, HHHH=head number
  435.     48h BYTE    XT: INT 13h subfunction number
  436.         AT: comand byte to hard disk controller
  437. --------B-M00400042--------------------------
  438. MEM 0040h:0042h - DISK CONTROLLER STATUS REGISTER 0
  439. Size:    BYTE
  440.  
  441. Bitfields for diskette controller status register 0:
  442. Bit(s)    Description    (Table M015)
  443.  7-6    interrupt code
  444.     00 normal completion
  445.     01 abnormal termination during execution
  446.     10 invalid command
  447.     11 abnormal termination: ready line on/diskette change
  448.  5    requested seek complete
  449.  4    drive fault
  450.  3    drive not ready
  451.  2    head state at time of interrupt
  452.  1-0    selected drive (drives 2&3 on PC,XT only)
  453. --------B-M00400043--------------------------
  454. MEM 0040h:0043h - DISK CONTROLLER STATUS REGISTER 1
  455. Size:    BYTE
  456.  
  457. Bitfields for diskette controller status register 0:
  458. Bit(s)    Description    (Table M016)
  459.  7    attempted access beyon last cylinder
  460.  6    unused
  461.  5    CRC error on read
  462.  4    DMA overrun
  463.  3    unused
  464.  2    data error
  465.  1    disk write protected
  466.  0    missing address mark
  467. --------B-M00400044--------------------------
  468. MEM 0040h:0044h - DISK CONTROLLER STATUS REGISTER 2
  469. Size:    BYTE
  470.  
  471. Bitfields for diskette controller status register 0:
  472. Bit(s)    Description    (Table M017)
  473.  7    unused
  474.  6    found deleted data address mark
  475.  5    CRC error in data field
  476.  4    wrong cylinder number read
  477.  3    verify equal
  478.  2    can't find sector matching verify condition
  479.  1    bad cylinder
  480.  0    unable to find address mark
  481. --------V-M00400049--------------------------
  482. MEM 0040h:0049h - VIDEO - CURRENT VIDEO MODE
  483. Size:    BYTE
  484. SeeAlso: MEM 0040h:004Ah,INT 10/AH=00h
  485. --------V-M0040004A--------------------------
  486. MEM 0040h:004Ah - VIDEO - COLUMNS ON SCREEN
  487. Size:    WORD
  488. SeeAlso: MEM 0040h:0049h,MEM 0040h:004Ch,MEM 0040h:004Eh
  489. --------V-M0040004C--------------------------
  490. MEM 0040h:004Ch - VIDEO - PAGE (REGEN BUFFER) SIZE IN BYTES
  491. Size:    WORD
  492. SeeAlso: MEM 0040h:004Ah,MEM 0040h:004Eh,MEM 0040h:0050h
  493. --------V-M0040004E--------------------------
  494. MEM 0040h:004Eh - VIDEO - CURRENT PAGE START ADDRESS IN REGEN BUFFER
  495. Size:    WORD
  496. SeeAlso: MEM 0040h:004Ch,MEM 0040h:0050h,MEM 0040h:0062h
  497. --------V-M00400050--------------------------
  498. MEM 0040h:0050h - VIDEO - CURSOR POSITIONS
  499. Size:    8 WORDs
  500. Desc:    contains row and column position for the cursors on each of eight
  501.       video pages
  502. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0060h
  503. --------V-M00400060--------------------------
  504. MEM 0040h:0060h - VIDEO - CURSOR TYPE
  505. Size:    WORD    (big-endian)
  506. Desc:    contains cursor start scan line and cursor end scan line
  507. SeeAlso: MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=03h
  508. --------V-M00400062--------------------------
  509. MEM 0040h:0062h - VIDEO - CURRENT PAGE NUMBER
  510. Size:    BYTE
  511. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0063h
  512. --------V-M00400063--------------------------
  513. MEM 0040h:0063h - VIDEO - CRT CONTROLLER BASE I/O PORT ADDRESS
  514. Size:    WORD
  515. Note:    normally 03B4h for mono and 03D4h for color video boards
  516. SeeAlso: MEM 0040h:0065h,MEM 0040h:0066h
  517. --------V-M00400065--------------------------
  518. MEM 0040h:0065h - VIDEO - CURRENT MODE SELECT REGISTER
  519. Size:    BYTE
  520. Desc:    contains last value written to I/O port 03B8h / 03D8h
  521. SeeAlso: MEM 0040h:0063h,MEM 0040h:0066h
  522.  
  523. Bitfields for current video mode select register:
  524. Bit(s)    Description    (Table M018)
  525.  7-6    unused
  526.  5    attribute bit 7 controls blinking instead of background
  527.  4    mode 6 graphics in monochrome
  528.  3    video signal enabled
  529.  2    monochrome
  530.  1    graphics
  531.  0    80x25 text
  532. --------V-M00400066--------------------------
  533. MEM 0040h:0066h - VIDEO - CURRENT SETTING OF CGA PALETTE REGISTER
  534. Size:    BYTE
  535. Desc:    contains the last value written to I/O port 03D9h
  536. SeeAlso: MEM 0040h:0063h,MEM 0040h:0065h,INT 10h/AH=0Bh/BH=01h
  537.  
  538. Bitfields for CGA palette register:
  539. Bit(s)    Description    (Table M019)
  540.  7-6    unused
  541.  5    palette (0/1)
  542.  4    intense background colors in text mode
  543.  3    intense border color (40x25) / background color (mode 5)
  544.  2    red
  545.  1    green
  546.  0    blue
  547. ----------M00400067--------------------------
  548. MEM 0040h:0067h - PC only - CASSETTE TIME COUNT
  549. Size:    WORD
  550. SeeAlso: INT 15/AH=00h
  551. ----------M00400067--------------------------
  552. MEM 0040h:0067h - RESET RESTART ADDRESS
  553. Size:    DWORD
  554. Desc:    this address stores the address at which to resume execution after a
  555.       CPU reset (or jump to F000h:FFF0h) when certain magic values are
  556.       stored at 0040h:0072h or in CMOS RAM location 0Fh
  557. SeeAlso: MEM 0040h:0072h,MEM F000h:FFF0h,CMOS 0Fh,INT 19
  558. ----------M00400069--------------------------
  559. MEM 0040h:0069h    - CASSETTE (PC only) - CASSETTE CRC REGISTER
  560. Size:    WORD
  561. SeeAlso: MEM 0040h:006Bh"CASSETTE"
  562. ----------M00400069--------------------------
  563. MEM 0040h:0069h - V20-XT-BIOS - KEY REPEAT
  564. Size:    BYTE
  565.  
  566. Bitfields for V20-XT-BIOS key repeat flags:
  567. Bit(s)    Description    (Table M020)
  568.  7    key repeat disabled
  569.  6    Ctrl-Alt pressed instead of just Alt
  570. ----------M0040006B--------------------------
  571. MEM 0040h:006Bh - CASSETTE (PC only) - LAST VALUE READ FROM CASSETTE
  572. Size:    BYTE
  573. SeeAlso: MEM 0040h:0069h"CASSETTE"
  574. ----------M0040006B--------------------------
  575. MEM 0040h:006Bh - POST LAST UNEXPECTED INTERRUPT (XT and later)
  576. Size:    BYTE
  577. Desc:    this is a bitmask of IRQs which have occurred while the corresponding
  578.       interrupt vector points at the default system BIOS handler
  579.       (bit 0 = IRQ0 to bit 7 = IRQ7; bit 2 = IRQ8-15 on AT and later)
  580. ----------M0040006C--------------------------
  581. MEM 0040h:006Ch - TIMER TICKS SINCE MIDNIGHT
  582. Size:    DWORD
  583. SeeAlso: MEM 0040h:0070h,INT 1A/AH=00h
  584. ----------M00400070--------------------------
  585. MEM 0040h:0070h - TIMER OVERFLOW
  586. Size:    BYTE
  587. Desc:    non-zero if timer has counted past midnight since last call to
  588.       INT 1A/AH=00h
  589. Note:    the original IBM BIOS, and thus most other BIOSes, sets this byte to
  590.       01h at midnight; a few (such as the Eagle PC-2) increment it each
  591.       time midnight is passed.  The former behavior results in lost days
  592.       if multiple midnights pass between "get-time" calls while the machine
  593.       is powered up.
  594. SeeAlso: MEM 0040h:006Ch
  595. --------K-M00400071--------------------------
  596. MEM 0040h:0071h - Ctrl-Break FLAG
  597. Size:    BYTE
  598. Desc:    bit 7 is set when Ctrl-Break has been pressed
  599. ----------M00400072--------------------------
  600. MEM 0040h:0072h - POST RESET FLAG
  601. Size:    WORD
  602. Desc:    specify the action the BIOS should take at the beginning of the
  603.       power-on self-test when the machine is reset
  604.  
  605. (Table M021)
  606. Values for POST reset flag:
  607.  0000h    cold boot
  608.  0064h    Burn-in mode
  609.  1234h    to bypass memory test (warm boot)
  610.  4321h    [PS/2 except Mod 25,30] to preserve memory
  611.  5678h    [Conv] system suspended
  612.  9ABCh    [Conv] manufacturing test mode
  613.  ABCDh    [Conv] POST loop mode
  614. --------B-M00400074--------------------------
  615. MEM 0040h:0074h - FIXED DISK LAST OPERATION STATUS (except ESDI drives)
  616. Size:    BYTE
  617. SeeAlso: INT 13/AH=01h,INT 13h/AH=0Ah
  618.  
  619. (Table M022)
  620. Values for fixed disk last operation status:
  621.  00h    no error
  622.  01h    invalid function request
  623.  02h    address mark not found
  624.  03h    write protect error
  625.  04h    sector not found
  626.  05h    reset failed
  627.  06h    diskette removed
  628.  07h    drive parameter activity failed
  629.  08h    DMA overrun
  630.  09h    DMA data boundary error
  631.  0Ah    bad sector flag detected
  632.  0Bh    bad track detected
  633.  0Ch    requested diskette media type not found
  634.     (PS/2 or extended BIOS only) unsupported track
  635.  0Dh    invalid number of sectors for Format
  636.  0Eh    control data address mark detected
  637.  0Fh    DMA arbitration level out of range
  638.  10h    uncorrectable ECC or CRC error
  639.  11h    ECC corrected data error
  640.  20h    general controller failed
  641.  40h    seek failed
  642.  80h    time out
  643.  AAh    drive not ready
  644.  B0h    volume not locked in drive (INT 13 extensions)
  645.  B1h    volume locked in drive (INT 13 extensions)
  646.  B2h    volume not removable (INT 13 extensions)
  647.  B3h    volume in use (INT 13 extensions)
  648.  B4h    lock count exceeded (INT 13 extensions)
  649.  B5h    valid eject request failed (INT 13 extensions)
  650.  BBh    undefined error
  651.  CCh    write fault on selected drive
  652.  E0h    status error/error register is zero
  653.  FFh    sense failed
  654. SeeAlso: #0159
  655. --------d-M00400074--------------------------
  656. MEM 0040h:0074h - WD1002-27X SuperBIOS - TOTAL DRIVES, FIRST CONTROLLER ONLY
  657. Size:    BYTE
  658. SeeAlso: MEM 0040h:0075h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  659. --------B-M00400075--------------------------
  660. MEM 0040h:0075h - FIXED DISK - NUMBER OF FIXED DISK DRIVES
  661. Size:    BYTE
  662. SeeAlso: MEM 0040h:0076h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  663. --------d-M00400075--------------------------
  664. MEM 0040h:0075h - WD1002-27X SuperBIOS - TOTAL FIXED DRIVES, BOTH CONTROLLERS
  665. Size:    BYTE
  666. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  667. --------B-M00400076--------------------------
  668. MEM 0040h:0076h - FIXED DISK - CONTROL BYTE    {IBM documented only for XT}
  669. Size:    BYTE
  670. Desc:    loaded from the disk parameter table control byte (offset 8) during
  671.       various hard disk operations
  672. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  673. --------d-M00400076--------------------------
  674. MEM 0040h:0076h - XT: hard disk controller's I/O address (Western Digital)
  675. Size:    BYTE
  676. --------d-M00400076--------------------------
  677. MEM 0040h:0076h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  678. Size:    BYTE
  679. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0075h"SuperBIOS"
  680. SeeAlso: MEM 0040h:0077h"SuperBIOS"
  681. --------B-M00400077--------------------------
  682. MEM 0040h:0077h    - FIXED DISK - I/O port offset {IBM documented only for XT}
  683. Size:    BYTE
  684. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0076h"FIXED DISK"
  685. --------d-M00400077--------------------------
  686. MEM 0040h:0077h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  687. Size:    BYTE
  688. SeeAlso: MEM 0040h:0076h"SuperBIOS"
  689. --------B-M00400078--------------------------
  690. MEM 0040h:0078h - PARALLEL DEVICE 1 TIME-OUT COUNTER
  691. Size:    BYTE
  692. SeeAlso: MEM 0040h:0079h,MEM 0040h:007Ah
  693. --------B-M00400079--------------------------
  694. MEM 0040h:0079h - PARALLEL DEVICE 2 TIME-OUT COUNTER
  695. Size:    BYTE
  696. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah
  697. --------B-M0040007A--------------------------
  698. MEM 0040h:007Ah - PARALLEL DEVICE 3 TIME-OUT COUNTER
  699. Size:    BYTE
  700. SeeAlso: MEM 0040h:0078h,MEM 0040h:0079h,MEM 0040h:007Bh"PARALLEL"
  701. --------B-M0040007B--------------------------
  702. MEM 0040h:007Bh - PARALLEL DEVICE 4 TIME-OUT COUNTER (pre-PS, PS Models 25,30)
  703. Size:    BYTE
  704. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,MEM 0040h:007Bh"INT 4Bh"
  705. --------m-M0040007B--------------------------
  706. MEM 0040h:007Bh - INT 4Bh FLAGS (PS2 and newer)
  707. Size:    BYTE
  708.  
  709. Bitfields for INT 4Bh flags:
  710. Bit(s)    Description    (Table M023)
  711.  7-6    reserved
  712.  5    set if Virtual DMA Spec supported [PS] (see INT 4B)
  713.  4    reserved
  714.  3    set if INT 4Bh intercepted and must be chained
  715.  2    reserved
  716.  1    set if Generic SCSI CBIOS services available on INT 4Bh
  717.  0    reserved
  718. --------B-M0040007C--------------------------
  719. MEM 0040h:007Ch - SERIAL DEVICE 1 TIMEOUT COUNTER
  720. Size:    BYTE
  721. SeeAlso: MEM 0040h:0000h,MEM 0040h:007Dh,MEM 0040h:007Eh,MEM 0040h:007Fh
  722. --------B-M0040007D--------------------------
  723. MEM 0040h:007Dh - SERIAL DEVICE 2 TIMEOUT COUNTER
  724. Size:    BYTE
  725. SeeAlso: MEM 0040h:0002h,MEM 0040h:007Ch,MEM 0040h:007Eh,MEM 0040h:007Fh
  726. --------B-M0040007E--------------------------
  727. MEM 0040h:007Eh - SERIAL DEVICE 3 TIMEOUT COUNTER
  728. Size:    BYTE
  729. SeeAlso: MEM 0040h:0004h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Fh
  730. --------B-M0040007F--------------------------
  731. MEM 0040h:007Fh - SERIAL DEVICE 4 TIMEOUT COUNTER
  732. Size:    BYTE
  733. SeeAlso: MEM 0040h:0006h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Eh
  734. --------K-M00400080--------------------------
  735. MEM 0040h:0080h - KEYBOARD BUFFER START OFFSET FROM SEGMENT 40h (normally 1Eh)
  736. Size:    WORD
  737. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0082h
  738. --------K-M00400082--------------------------
  739. MEM 0040h:0082h - KEYBOARD BUFFER END+1 OFFSET FROM SEGMENT 40h (normally 3Eh)
  740. Size:    WORD
  741. Note:    XT BIOS dated 11/08/82 ends here
  742. SeeAlso: MEM 0040h:001Ch,MEM 0040h:003Eh,MEM 0040h:0080h
  743. --------V-M00400084--------------------------
  744. MEM 0040h:0084h - VIDEO (EGA/MCGA/VGA) - ROWS ON SCREEN MINUS ONE
  745. Size:    BYTE
  746. --------V-M00400085--------------------------
  747. MEM 0040h:0085h - VIDEO (EGA/MCGA/VGA) - CHARACTER HEIGHT IN SCAN-LINES
  748. Size:    WORD
  749. --------V-M00400087--------------------------
  750. MEM 0040h:0087h - VIDEO (EGA/VGA) CONTROL: [MCGA: =00h]
  751. Size:    BYTE
  752.  
  753. Bitfields for EGA/VGA Video control flags:
  754. Bit(s)    Description    (Table M024)
  755.  7    do not to clear RAM on mode set (see INT 10h, AH=00h)
  756.  6-5    RAM on adapter = (this field + 1) * 64K
  757.  4    reserved
  758.  3    EGA/VGA video system INactive
  759.  2    wait for display enable
  760.  1    mono monitor
  761.  0    alphanumeric cursor emulation DISabled
  762.     When enabled, text mode cursor size (INT 10,AH=01h) settings looking
  763.      like CGA ones are translated to equivalent EGA/VGA ones.
  764. --------V-M00400088--------------------------
  765. MEM 0040h:0088h - VIDEO (EGA/VGA) SWITCHES: [MCGA: reserved]
  766. Size:    BYTE
  767. SeeAlso: MEM 0040h:0087h,MEM 0040h:0088h
  768.  
  769. Bitfields for EGA/VGA Video switches:
  770. Bit(s)    Description    (Table M025)
  771.  7-4    power-on state of feature connector bits 3-0
  772.  3-0    configuration switches 4-1 (=0 on, =1 off) (see #M026)
  773. Note:    when bit 4 of 0040h:0089h is 0, VGA emulates 350-line EGA if this
  774.       byte is x3h or x9h, otherwise emulates 200-line CGA in 400-line
  775.       double scan. VGA resets this byte to x9h after the mode set.
  776.     See also note for 0040h:0089h.
  777.  
  778. (Table M026)
  779. Values for EGA/VGA configuration switches:
  780.  00h Pri MDA,                Sec EGA+old color display 40 x 25
  781.  01h Pri MDA,                Sec EGA+old color display 80 x 25
  782.  02h Pri MDA,                Sec EGA+ECD normal mode (CGA emul)
  783.  03h Pri MDA,                Sec EGA+ECD enhanced mode
  784.  04h Pri CGA 40 x 25,            Sec EGA mono display
  785.  05h Pri CGA 80 x 25,            Sec EGA mono display
  786.  06h Pri EGA+old color display 40 x 25, Sec MDA
  787.  07h Pri EGA+old color display 80 x 25, Sec MDA
  788.  08h Pri EGA+ECD normal mode (CGA emul), Sec MDA
  789.  09h Pri EGA+ECD enhanced mode,        Sec MDA
  790.  0Ah Pri EGA mono display,        Sec CGA 40 x 25
  791.  0Bh Pri EGA mono display,        Sec CGA 80 x 25
  792. SeeAlso: #M025
  793. --------V-M00400089--------------------------
  794. MEM 0040h:0089h U - VIDEO (MCGA/VGA) - MODE-SET OPTION CONTROL
  795. Size:    BYTE
  796.  
  797. Bitfields for Video mode-set option control:
  798. Bit(s)    Description    (Table M027)
  799.  7,4    requested scan lines
  800.     0 0  350-line mode requested
  801.     0 1  400-line mode at next mode set
  802.     1 0  200-line mode requested
  803.     1 1  reserved
  804.     Note:    Apparently VGA BIOS mode set disregards bit 7 and uses
  805.           byte 40h:88h to determine 200/350 selection when bit 4
  806.           is zero. Presumably bit 7 is a convenience for other
  807.           purposes. Bit 7 is reset to zero after the mode set.
  808.  6    display switching enabled
  809.  5    reserved
  810.  4    if set:      use 400-line mode at next mode set
  811.     if clear: [VGA] emulate EGA at next mode set
  812.         [MCGA] emulate CGA, digital monitor, 200 lines, 8x8 text
  813.     Note: this bit is set by the video mode set on VGA, unchanged on MCGA
  814.  3    default palette loading DISabled at mode set
  815.  2    mono display
  816.  1    gray scale summing enabled
  817.  0    [VGA] =1 if VGA active, =0 if not
  818.     [MCGA] reserved, zero
  819. Note:    the Tseng ET4000 BIOS v3.00 uses bits 6-4 of 88h and bits 6-5 of 89h
  820.       to specify graphics-mode refresh rates as follows
  821.         88h/6        640x480:  1 for 72Hz,0 for 60Hz
  822.         88h/5+89h/6    800x600:  00  60Hz
  823.                       01  56Hz
  824.                       11  72Hz
  825.         88h/4+89h/5    1024x768: 00  interlaced
  826.                       01  60Hz
  827.                       10  72Hz???
  828.                       11  70Hz
  829. --------V-M0040008A--------------------------
  830. MEM 0040h:008Ah U - VIDEO (MCGA/VGA) - INDEX INTO DISPLAY COMBINATION CODE TBL
  831. Size:    BYTE
  832. --------*-M0040008B--------------------------
  833. MEM 0040h:008Bh - PC, PCjr, PC/XT 11/8/82, Convertible - RESERVED
  834. Size:    11 BYTEs
  835. --------B-M0040008B--------------------------
  836. MEM 0040h:008Bh - DISKETTE MEDIA CONTROL
  837. Size:    BYTE
  838.  
  839. Bitfields for diskette media control:
  840. Bit(s)    Description    (Table M028)
  841.  7-6    last data rate set by controller
  842.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  843.  5-4    last diskette drive step rate selected
  844.     00=0Ch, 01=0Dh, 10=0Eh, 11=0Ah
  845.  3-2    {data rate at start of operation}
  846.  1-0    reserved
  847. Note:    EHD BIOS sets this byte to 01h and never reads it back
  848. --------B-M0040008C--------------------------
  849. MEM 0040h:008Ch - FIXED DISK - CONTROLLER STATUS [not XT]
  850. Size:    BYTE
  851. SeeAlso: MEM 0040h:008Dh,MEM 0040h:008Eh
  852. --------B-M0040008D--------------------------
  853. MEM 0040h:008Dh - FIXED DISK - CONTROLLER ERROR STATUS [not XT]
  854. Size:    BYTE
  855. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Eh
  856. --------B-M0040008E--------------------------
  857. MEM 0040h:008Eh - FIXED DISK - INTERRUPT CONTROL [not XT]
  858. Size:    BYTE
  859. Note:    cleared to 00h at start of disk operation, set to FFh by IRQ14
  860.       handler when hard disk controller completes command
  861. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Fh
  862. --------B-M0040008F--------------------------
  863. MEM 0040h:008Fh U - DISKETTE CONTROLLER INFORMATION [not XT]
  864. Size:    BYTE
  865. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Eh
  866.  
  867. Bitfields for diskette controller information:
  868. Bit(s)    Description    (Table M029)
  869.  7    reserved
  870.  6    =1 drive 1 determined
  871.  5    =1 drive 1 is multi-rate, valid if drive determined
  872.  4    =1 drive 1 supports 80 tracks, always valid
  873.  3    reserved
  874.  2    =1 drive 0 determined
  875.  1    =1 drive 0 is multi-rate, valid if drive determined
  876.  0    =1 drive 0 supports 80 tracks, always valid
  877. Note:    EHD BIOS sets this byte to 01h and never alters it again
  878. --------B-M00400090--------------------------
  879. MEM 0040h:0090h - DISKETTE DRIVE 0 MEDIA STATE
  880. Size:    BYTE
  881. SeeAlso: MEM 0040h:0091h
  882.  
  883. Bitfields for diskette drive media state:
  884. Bit(s)    Description    (Table M030)
  885.  7-6    data rate
  886.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  887.  5    double stepping required (e.g. 360kB in 1.2MB)
  888.  4    media type established
  889.  3    drive capable of supporting 4MB media
  890.  2-0    on exit from BIOS, contains
  891.     000 trying 360kB in 360kB
  892.     001 trying 360kB in 1.2MB
  893.     010 trying 1.2MB in 1.2MB
  894.     011 360kB in 360kB established
  895.     100 360kB in 1.2MB established
  896.     101 1.2MB in 1.2MB established
  897.     110 reserved
  898.     111 all other formats/drives
  899. SeeAlso: #M031,#M032
  900. --------B-M00400091--------------------------
  901. MEM 0040h:0091h - DISKETTE DRIVE 1 MEDIA STATE
  902. Size:    BYTE
  903. SeeAlso: MEM 0040h:0090h,#M030
  904. --------B-M00400092--------------------------
  905. MEM 0040h:0092h U - DISKETTE DRIVE 0 MEDIA STATE AT START OF OPERATION
  906. Size:    BYTE
  907. Note:    officially "Drive 2 media state"
  908. SeeAlso: MEM 0040h:0093h"DRIVE 1"
  909.  
  910. Bitfields for diskette drive 0 media state at start of operation:
  911. Bit(s)    Description    (Table M031)
  912.  7-3 (see #M030)
  913.  2    multiple data rate capability determined
  914.  1    multiple data rate capability
  915.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  916. SeeAlso: #M030,#M032
  917. --------d-M00400092--------------------------
  918. MEM 0040h:0092h - Olivetti Quaderno - HARD DISK POWERDOWN COUNTDOWN CLOCK TICKS
  919. Size:    BYTE
  920. Note:    hard disk is turned off when counter reaches zero
  921. --------B-M00400093--------------------------
  922. MEM 0040h:0093h U - DISKETTE DRIVE 1 MEDIA STATE AT START OF OPERATION
  923. Size:    BYTE
  924. Note:    officially "Drive 3 media state"
  925. SeeAlso: MEM 0040h:0092h"DRIVE 0"
  926.  
  927. Bitfields for diskette drive 1 media state at start of operation:
  928. Bit(s)    Description    (Table M032)
  929.  7-3    (see #M030)
  930.  2    multiple data rate capability determined
  931.  1    multiple data rate capability
  932.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  933. --HP 100LX/200LX--
  934.     display control status
  935.  0    =1 if DISPCTL -K
  936.  1    =1 if DISPCTL -C
  937. --------B-M00400094--------------------------
  938. MEM 0040h:0094h - DISKETTE DRIVE 0 CURRENT TRACK NUMBER
  939. Size:    BYTE
  940. SeeAlso: MEM 0040h:0095h
  941. --------B-M00400095--------------------------
  942. MEM 0040h:0095h - DISKETTE DRIVE 1 CURRENT TRACK NUMBER
  943. Size:    BYTE
  944. SeeAlso: MEM 0040h:0094h
  945. --------K-M00400096--------------------------
  946. MEM 0040h:0096h - KEYBOARD STATUS BYTE 1
  947. Size:    BYTE
  948.  
  949. Bitfields for keyboard status byte 1:
  950. Bit(s)    Description    (Table M033)
  951.  7    =1 read-ID in progress
  952.  6    =1 last code read was first of two ID codes
  953.  5    =1 force Num Lock if read-ID and enhanced keyboard
  954.  4    =1 enhanced keyboard installed
  955.  3    =1 Right Alt pressed
  956.  2    =1 Right Ctrl pressed
  957.  1    =1 last code read was E0h
  958.  0    =1 last code read was E1h
  959. SeeAlso: #M034,#M010
  960. --------K-M00400097--------------------------
  961. MEM 0040h:0097h - KEYBOARD STATUS BYTE 2
  962. Size:    BYTE
  963.  
  964. Bitfields for keyboard status byte 2:
  965. Bit(s)    Description    (Table M034)
  966.  7    =1 keyboard transmit error flag
  967.  6    =1 LED update in progress
  968.  5    =1 RESEND received from keyboard
  969.  4    =1 ACK received from keyboard
  970.  3    reserved, must be zero
  971.  2    Caps Lock LED
  972.  1    Num Lock LED
  973.  0    Scroll Lock LED
  974. SeeAlso: #M033,#M010
  975. --------B-M00400098--------------------------
  976. MEM 0040h:0098h - TIMER2 (AT, PS exc Mod 30) - PTR TO USER WAIT-COMPLETE FLAG
  977. Size:    DWORD
  978. Note:    (see INT 15/AX=8300h)
  979. --------B-M0040009C--------------------------
  980. MEM 0040h:009Ch - TIMER2 (AT, PS exc Mod 30) - USER WAIT COUNT IN MICROSECONDS
  981. Size:    DWORD
  982. --------V-M0040009F--------------------------
  983. MEM 0040h:009Fh - HP 100LX/200LX - VIDEO ZOOM MODE
  984. Size:    BYTE
  985.  
  986. (Table M035)
  987. Values for HP 100LX/200LX video zoom mode:
  988.  02h    80x25 mono
  989.  03h    80x25 color
  990.  80h    64x18 mono
  991.  81h    64x18 color
  992.  82h    40x25 mono
  993.  83h    40x25 color
  994.  84h    40x16 mono
  995.  85h    40x16 color
  996. SeeAlso: INT 10/AH=D0h
  997. --------B-M004000A0--------------------------
  998. MEM 0040h:00A0h - TIMER2 (AT, PS exc Mod 30) - WAIT ACTIVE FLAG
  999. Size:    BYTE
  1000.  
  1001. Bitfields for Timer2 wait active flag:
  1002. Bit(s)    Description    (Table M036)
  1003.  7    wait time elapsed
  1004.  6-1    reserved
  1005.  0    INT 15/AH=86h has occurred
  1006. --------N-M004000A1--------------------------
  1007. MEM 0040h:00A1h - BIT 5 SET IF LAN SUPPORT PROGRAM INTERRUPT ARBITRATOR PRESENT
  1008. Size:    BYTE
  1009. Note:    DEVICE=DXMA0MOD.SYS
  1010. --------N-M004000A2--------------------------
  1011. MEM 0040h:00A2h - RESERVED FOR NETWORK ADAPTERS
  1012. Size:    6 BYTEs
  1013. --------d-M004000A4--------------------------
  1014. MEM 0040h:00A4h - PS/2 Mod 30 - SAVED FIXED DISK INTERRUPT VECTOR 
  1015. Size:    DWORD
  1016. --------V-M004000A8--------------------------
  1017. MEM 0040h:00A8h - VIDEO (EGA/MCGA/VGA) - POINTER TO VIDEO SAVE POINTER TABLE
  1018. Size:    DWORD
  1019.  
  1020. Format of Video Save Pointer Table [EGA/VGA/MCGA only]:
  1021. Offset    Size    Description    (Table M037)
  1022.  00h    DWORD    ptr to Video Parameter Table
  1023.  04h    DWORD    ptr to Parameter Dynamic Save Area, else 0 [EGA/VGA only]
  1024.  08h    DWORD    ptr to Alphanumeric Character Set Override, else 0
  1025.  0Ch    DWORD    ptr to Graphics Character Set Override, else 0
  1026.  10h    DWORD    [VGA only] ptr to Secondary Save Pointer Table, must be valid
  1027.  14h    DWORD    reserved, zero
  1028.  18h    DWORD    reserved, zero
  1029. Note: table initially in ROM, copy to RAM to alter, then update 40h:A8h.
  1030.  
  1031. Format of Secondary Video Save Pointer Table [VGA only]:
  1032. Offset    Size    Description    (Table M038)
  1033.  00h    WORD    Length of this table in bytes, including this word (1Ah)
  1034.  02h    DWORD    ptr to Display Combination Code Table, must be valid
  1035.  06h    DWORD    ptr to second Alphanumeric Character Set Override, else 0
  1036.  0Ah    DWORD    ptr to User Palette Profile Table, else 0
  1037.  0Eh    DWORD    reserved, zero
  1038.  12h    DWORD    reserved, zero
  1039.  16h    DWORD    reserved, zero
  1040. Note: table initially in ROM, copy to RAM to alter, then alter Save Ptr Table.
  1041.  
  1042. Format of Display Combination Code Table [VGA only]:
  1043. Offset    Size    Description    (Table M039)
  1044.  00h    BYTE    Number of entries in the DCC table at offset 04h
  1045.  01h    BYTE    Version number
  1046.  02h    BYTE    Maximum display type code that can appear in DCC table
  1047.  03h    BYTE    reserved
  1048.  04h 2N BYTEs    Each pair of bytes gives a valid display combination
  1049.         Meaning of each byte:
  1050.          00h     no display
  1051.          01h     MDA with mono display
  1052.          02h     CGA with color display
  1053.          03h     reserved
  1054.          04h     EGA with color display
  1055.          05h     EGA with mono display
  1056.          06h     Professional Graphics Controller
  1057.          07h     VGA with mono display
  1058.          08h     VGA with color display
  1059.          09h     reserved
  1060.          0Ah     MCGA with digital color display
  1061.          0Bh     MCGA with analog mono display
  1062.          0Ch     MCGA with analog color display
  1063.          FFh     unrecognised video system
  1064.  
  1065. Format of Video Parameter Table [EGA, VGA only]:
  1066. Offset    Size    Description    (Table M040)
  1067.  00h-03h    Modes 00h-03h in 200-line CGA emulation mode
  1068.  04h-0Eh    Modes 04h-0Eh
  1069.  0Fh-10h    Modes 0Fh-10h when only 64kB RAM on adapter
  1070.  11h-12h    Modes 0Fh-10h when >64kB RAM on adapter
  1071.  13h-16h    Modes 00h-03h in 350-line mode
  1072.  17h        VGA Modes 00h or 01h in 400-line mode
  1073.  18h        VGA Modes 02h or 03h in 400-line mode
  1074.  19h        VGA Mode  07h in 400-line mode
  1075.  1Ah-1Ch    VGA Modes 11h-13h
  1076. Note:    An array of 23 [EGA] or 29 [VGA] elements, each element being 64
  1077.       bytes long.  Elements appear in the above order.
  1078.  
  1079. Format of Video Parameter Table element [EGA, VGA only]:
  1080. Offset    Size    Description    (Table M041)
  1081.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1082.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1083.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1084.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1085.  05h  4 BYTEs    Values for Sequencer Registers 1-4
  1086.  09h    BYTE    Value for Miscellaneous Output Register
  1087.  0Ah 25 BYTEs    Values for CRTC Registers 00h-18h
  1088.  23h 20 BYTEs    Values for Attribute Controller Registers 00h-13h
  1089.  37h  9 BYTEs    Values for Graphics Controller Registers 00h-08h
  1090.  
  1091. Format of Video Parameter Table [MCGA only] {guesswork from inspection}:
  1092. Offset    Size    Description    (Table M042)
  1093.     - 16 triplet BYTEs of R,G,B DAC info for 16 colors;
  1094.     - An array of 11 elements, each element being 32 bytes long.
  1095.       Elements appear in the order:
  1096.         Modes 00h,01h in 200-line mode for digital displays
  1097.         Modes 00h,01h in 400-line mode for analog displays
  1098.         Modes 02h,03h in 200-line mode for digital displays
  1099.         Modes 02h,03h in 400-line mode for analog displays
  1100.         Modes 04h,05h in 200-line mode for digital displays
  1101.         Modes 04h,05h in 400-line mode for analog displays
  1102.         Mode  06h in 200-line mode for digital displays
  1103.         Mode  06h in 400-line mode for analog displays
  1104.         Mode  11h
  1105.         Mode  13h in 200-line mode for digital displays
  1106.         Mode  13h in 400-line mode for analog displays
  1107.  
  1108. Format of Video Parameter Table element [MCGA only]:
  1109. Offset    Size    Description    (Table M043)
  1110.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1111.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1112.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1113.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1114.  05h    WORD    ??? always zero
  1115.  07h 21 BYTEs    Video data registers 00h-14h to port 3D5h indexed by 3D4h
  1116.  1Ch    BYTE    PEL Mask to port 3C6h
  1117.  1Dh    BYTE    CGA Mode Control to port 3D8h
  1118.  1Eh    BYTE    CGA Border Control to port 3D9h
  1119.  1Fh    BYTE    Extended Mode Control to port 3DDh
  1120.  
  1121. Format of Video Parameter Dynamic Save Area [EGA, VGA only]:
  1122. Offset    Size    Description    (Table M044)
  1123.  00h 16 BYTEs    Last data written to Attribute Contr. Palette Registers 0-15
  1124.  10h    BYTE    Last data written to Attribute Controller Overscan Register
  1125.  11h-FFh    Reserved
  1126.         Note: Need for table was that EGA registers were write-only.
  1127.         Note: If default values (from the Video Parameter Table) are
  1128.               over-ridden at a mode set by the VGA User Palette Profile
  1129.               Table, then the Dynamic Save Area is updated with the
  1130.               default values, not the User Profile ones.
  1131.  
  1132. Format of Alphanumeric Character Set Override:
  1133. Offset    Size    Description    (Table M045)
  1134.  00h    BYTE    Length in bytes of each character in font table
  1135.  01h    BYTE    Character generator RAM bank to load, 0=normal
  1136.  02h    WORD    Number of characters in font table, normally 256
  1137.  04h    WORD    Code of first character in font table, normally 0
  1138.  06h    DWORD    ptr to font table
  1139.  0Ah    BYTE    Displayable rows (FFh=use maximum calculated value)
  1140.  0Bh    BYTEs    Array of mode values to which this font is to pertain
  1141.     BYTE    FFh end of array
  1142.  
  1143. Format of Second Alphanumeric Character Set Override:
  1144. Offset    Size    Description    (Table M046)
  1145.  00h    BYTE    Length in bytes of each character in font table
  1146.  01h    BYTE    Character generator RAM bank to load, normally non-zero
  1147.  02h    BYTE    reserved
  1148.  03h    DWORD    ptr to font table
  1149.  07h    BYTEs    Array of mode values to which this font is to pertain
  1150.     BYTE    FFh end of array
  1151. Note:    Authorities differ, some say same as first override above, but IBM
  1152.       says it is as shown above
  1153.  
  1154. Format of Graphics Character Set Override:
  1155. Offset    Size    Description    (Table M047)
  1156.  00h    BYTE    Number of displayable character rows
  1157.  01h    WORD    Length in bytes of each character in font table
  1158.  03h    DWORD    ptr to font table
  1159.  07h    BYTEs    Array of mode values to which this font is to pertain
  1160.     BYTE    FFh end of array
  1161.  
  1162. Format of User Palette Profile Table [VGA only]:
  1163. Offset    Size    Description    (Table M048)
  1164.  00h    BYTE    Underlining: 01h=enable in all alphanumeric modes
  1165.                  00h=enable in monochrome alphanumeric modes only
  1166.                  FFh=disable in all alphanumeric modes
  1167.  01h    BYTE    reserved
  1168.  02h    WORD    reserved
  1169.  04h    WORD    Number (0-17) of Attribute Controller registers in table
  1170.  06h    WORD    Index (0-16) of first Attribute Controller register in table
  1171.  08h    DWORD    ptr to table of Attribute Controller registers to override
  1172.             Table is an array of BYTEs.
  1173.  0Ch    WORD    Number (0-256) of video DAC Color registers in table
  1174.  0Eh    WORD    Index (0-255) of first video DAC Color register in table
  1175.  10h    DWORD    ptr to table of video DAC Color registers to override
  1176.             Table is ??? triplets ??? of BYTEs???
  1177.  14h    BYTEs    array of mode values to which this profile is to pertain
  1178.     BYTE    FFh end of array
  1179. --------*-M004000AC--------------------------
  1180. MEM 0040h:00ACh - RESERVED
  1181. Size:    4 BYTEs
  1182. --------b-M004000B0--------------------------
  1183. MEM 0040h:00B0h - Phoenix 386 BIOS 1.10 10a - LOOP COUNT FOR HARD DISK TIMEOUT
  1184. Size:    BYTE
  1185. Desc:    number of times a tight software delay loop should be executed to
  1186.       generate the sub-55ms delays used internally by the BIOS
  1187. Note:    also used for delaying when beeping due to full keyboard buffer
  1188. --------d-M004000B0--------------------------
  1189. MEM 0040h:00B0h - PTR TO 3363 OPTICAL DISK DRIVER OR BIOS ENTRY POINT
  1190. Size:    DWORD
  1191. Notes:    When 3363 BIOS present, the ASCIZ signature "OPTIC "occurs 3 bytes
  1192.       beyond this entry point
  1193.     When 3363 BIOS and 3363 File System Driver present, the ASCIZ signature
  1194.       "FILE SYSTEM DRIVER" occurs 3 bytes beyond this entry point
  1195. --------b-M004000B0--------------------------
  1196. MEM 0040h:00B0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 48 HARD DISK
  1197. Size:    16 BYTEs
  1198. SeeAlso: INT 41,INT 46
  1199. --------*-M004000B4--------------------------
  1200. MEM 0040h:00B4h    - RESERVED
  1201. Size:    WORD
  1202. --------b-M004000B5--------------------------
  1203. MEM 0040h:00B5h    - Dell 4xxDE
  1204. Size:    BYTE
  1205.  
  1206. Bitfields for Dell 4xxDE flags:
  1207. Bit(s)    Description    (Table M049)
  1208.  2    ??? (related to disk drives)
  1209.  5    page tables set to allow Weitek addressing in real mode
  1210.  6    Weitek math coprocessor present
  1211. ----------M004000B6--------------------------
  1212. MEM 0040h:00B6h    - RESERVED FOR POST???
  1213. Size:    3 BYTEs
  1214. ----------M004000B9--------------------------
  1215. MEM 0040h:00B9h - ???
  1216. Size:    7 BYTEs
  1217. --------b-M004000BC--------------------------
  1218. MEM 0040h:00BCh - 1993 Phoenix 486 BIOS 1.03 PCI - CPU TYPE/MASK REVISION
  1219. Size:    WORD
  1220. Desc:    the high byte contains the CPU type, the low byte the mask revision
  1221.       (stepping level), as reported to the BIOS in DX by the CPU at startup
  1222. SeeAlso: INT 15/AH=C9h
  1223. --------b-M004000C0--------------------------
  1224. MEM 0040h:00C0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 49 HARD DISK
  1225. Size:    16 BYTEs
  1226. SeeAlso: INT 41,INT 46
  1227. --------*-M004000C0--------------------------
  1228. MEM 0040h:00C0h    - RESERVED
  1229. Size:    14 BYTEs
  1230. --------K-M004000C2--------------------------
  1231. MEM 0040h:00C2h - AMI BIOS 1.00.12.AX1T - KEYBOARD TYPE
  1232. Size:    WORD
  1233. Desc:    this word contains an indication of the type of keyboard
  1234.       (controller???) attached to the system
  1235. Note:    AMI's APM code checks for 4147h vs. other value (5047h seen on Intel
  1236.       "Plato" motherboard)
  1237. SeeAlso: #0503
  1238. --------b-M004000CE--------------------------
  1239. MEM 0040h:00CEh    - COUNT OF DAYS SINCE LAST BOOT
  1240. Size:    WORD
  1241. --------*-M004000D0--------------------------
  1242. MEM 0040h:00D0h - RESERVED
  1243. Size:    32 BYTEs
  1244. --------S-M004000D0--------------------------
  1245. MEM 0040h:00D0h    - Digiboard MV/4 - LENGTH OF DATA TABLE
  1246. Size:    BYTE
  1247. --------d-M004000D0--------------------------
  1248. MEM 0040h:00D0h    EHD floppy - INSTALLATION FLAGS
  1249. Size:    BYTE
  1250.  
  1251. Bitfields for EHD floppy installation flags:
  1252. Bit(s)    Description    (Table M050)
  1253.  4    installation completed
  1254.  3-0    drives 0-3
  1255. --------b-M004000D0--------------------------
  1256. MEM 0040h:00D0h    - AMI BIOS v1.00.12.AX1T - EPP - SCRATCH SPACE
  1257. Size:    WORD
  1258. Desc:    this word holds the value of BX during an EPP BIOS call
  1259. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1260. SeeAlso: MEM 0040h:00DDh"AMI"
  1261. --------S-M004000D1--------------------------
  1262. MEM 0040h:00D1h    - Digiboard MV/4 - PRODUCT ID
  1263. Size:    BYTE
  1264. --------S-M004000D2--------------------------
  1265. MEM 0040h:00D2h    - Digiboard MV/4 - BASE ADDRESS FOUND
  1266. Size:    WORD
  1267. --------b-M004000D2--------------------------
  1268. MEM 0040h:00D2h    - AMI BIOS v1.00.12.AX1T - EPP BASE I/O PORT
  1269. Size:    WORD
  1270. --------S-M004000D4--------------------------
  1271. MEM 0040h:00D4h    - Digiboard MV/4 - PORTS
  1272. Size:    BYTE
  1273. --------S-M004000D5--------------------------
  1274. MEM 0040h:00D5h    - Digiboard MV/4 - IRQ
  1275. Size:    BYTE
  1276. --------d-M004000D5--------------------------
  1277. MEM 0040h:00D5h    - EHD floppy - NUMBER OF FLOPPY DISK CONTROLLERS IN SYSTEM
  1278. Size:    BYTE
  1279. --------b-M004000D5--------------------------
  1280. MEM 0040h:00D5h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 CAPABILITIES
  1281. Size:    BYTE
  1282. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1283. SeeAlso: MEM 0040h:00DCh"AMI"
  1284. --------d-M004000D6--------------------------
  1285. MEM 0040h:00D6h    - EHD floppy - AND-BITS TO ADJUST PORT ADDRESS
  1286. Size:    BYTE
  1287. Note:    this byte contains FFh if controller at 03Fxh and 7Fh if at 037xh; the
  1288.       value is ANDed with DL prior to using IN A?,DX or OUT DX,A?
  1289.       instructions
  1290. --------K-M004000D6--------------------------
  1291. MEM 0040h:00D6h - Digiboard MV/4 - NUMBER OF KEYBOARDS FOUND
  1292. Size:    WORD
  1293. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1294. --------b-M004000D6--------------------------
  1295. MEM 0040h:00D6h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 IRQ
  1296. Size:    BYTE
  1297. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D8h"AMI"
  1298. SeeAlso: MEM 0040h:00DDh"AMI"
  1299. --------d-M004000D7--------------------------
  1300. MEM 0040h:00D7h - EHD floppy - DRIVE 0 DISKETTE MEDIA STATE
  1301. Size:    BYTE
  1302. Note:    the value in this byte is copied into 0040h:0090h (diskette 0 status)
  1303. SeeAlso: MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1304.  
  1305. Bitfields for EHD diskette media state:
  1306. Bit(s)    Description    (Table M051)
  1307.  7-6    data rate: 00=500kbps,01=300kbps,10=250k,11=1M/S
  1308.  5    double stepping required (e.g. 360kB in 1.2MB)
  1309.  4    media type established
  1310.  3    reserved
  1311.  2-0    on exit from BIOS, contains:
  1312.     000 trying 360kB in 360kB
  1313.     001 trying 360kB in 1.2MB
  1314.     010 trying 1.2MB in 1.2MB
  1315.     011 360kB in 360kB established
  1316.     100 360kB in 1.2MB established
  1317.     101 1.2MB in 1.2MB established
  1318.     110 reserved (2M8?)
  1319.     111 all other formats/drives
  1320. --------b-M004000D7--------------------------
  1321. MEM 0040h:00D7h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 CAPABILITIES
  1322. Size:    BYTE
  1323. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1324. SeeAlso: MEM 0040h:00DDh"AMI"
  1325. --------M-M004000D8--------------------------
  1326. MEM 0040h:00D8h - Digiboard MV/4 - NUMBER OF MICE FOUND
  1327. Size:    WORD
  1328. SeeAlso: MEM 0040h:00D6h"Digiboard",MEM 0040h:00DAh"Digiboard"
  1329. --------d-M004000D8--------------------------
  1330. MEM 0040h:00D8h - EHD floppy - DRIVE 1 DISKETTE MEDIA STATE
  1331. Size:    BYTE
  1332. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1333. --------b-M004000D8--------------------------
  1334. MEM 0040h:00D8h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 IRQ
  1335. Size:    BYTE
  1336. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1337. SeeAlso: MEM 0040h:00DDh"AMI"
  1338. --------d-M004000D9--------------------------
  1339. MEM 0040h:00D9h - EHD floppy - DRIVE 2 DISKETTE MEDIA STATE
  1340. Size:    BYTE
  1341. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00DAh"EHD"
  1342. --------S-M004000DA--------------------------
  1343. MEM 0040h:00DAh - Digiboard MV/4 - CURRENT PORT (used by VGA initializatn only)
  1344. Size:    BYTE
  1345. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1346. --------d-M004000DA--------------------------
  1347. MEM 0040h:00DAh - EHD floppy - DRIVE 3 DISKETTE MEDIA STATE
  1348. Size:    BYTE
  1349. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD"
  1350. --------S-M004000DB--------------------------
  1351. MEM 0040h:00DBh - Digiboard MV/4 - MASTER 8259 MASK (used by VGA init only)
  1352. Size:    BYTE
  1353. SeeAlso: MEM 0040h:00DCh"Digiboard"
  1354. --------d-M004000DB--------------------------
  1355. MEM 0040h:00DBh - EHD floppy - DRIVE 0 NEEDS RECALIBARATION
  1356. Size:    BYTE
  1357. SeeAlso: MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1358. --------S-M004000DC--------------------------
  1359. MEM 0040h:00DCh - Digiboard MV/4 - SLAVE 8259 MASK (used by VGA init only)
  1360. Size:    BYTE
  1361. SeeAlso: MEM 0040h:00DBh"Digiboard"
  1362. --------b-M004000DC--------------------------
  1363. MEM 0040h:00DCh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 MODE
  1364. Size:    BYTE
  1365. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00DDh"AMI"
  1366. SeeAlso: INT 17/AX=0200h/BX=5050h
  1367.  
  1368. (Table M052)
  1369. Values for AMI Enhanced Parallel Port mode:
  1370.  01h    compatibility mode
  1371.  02h    bi-directional mode
  1372.  04h    EPP mode
  1373. SeeAlso: #0554
  1374. --------d-M004000DC--------------------------
  1375. MEM 0040h:00DCh - EHD floppy - DRIVE 1 NEEDS RECALIBARATION
  1376. Size:    BYTE
  1377. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1378. --------b-M004000DC--------------------------
  1379. MEM 0040h:00DCh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 MODE
  1380. Size:    BYTE
  1381. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI",#M052
  1382. --------d-M004000DD--------------------------
  1383. MEM 0040h:00DDh - EHD floppy - DRIVE 2 NEEDS RECALIBARATION
  1384. Size:    BYTE
  1385. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DEh"EHD"
  1386. --------d-M004000DE--------------------------
  1387. MEM 0040h:00DEh - EHD floppy - DRIVE 3 NEEDS RECALIBARATION
  1388. Size:    BYTE
  1389. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD"
  1390. --------b-M004000DF--------------------------
  1391. MEM 0040h:00DFh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT LOCK STATE
  1392. Size:    BYTE
  1393. Note:    set to 01h if last request was to lock a port, 00h if last request was
  1394.       to unlock a port
  1395. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI"
  1396. --------b-M004000E0--------------------------
  1397. MEM 0040h:00E0h    - AMI BIOS v1.00.12.AX1T - EPP - REAL-TIME DEVICE COUNT
  1398. Size:    BYTE
  1399. Desc:    contains the number of advertised real-time devices as set by EPP
  1400.       function 12h (see #0549)
  1401. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DFh"AMI"
  1402. --------b-M004000E0--------------------------
  1403. MEM 0040h:00E0h - Phoenix 386 BIOS - DRIVE PARAMETER TABLE FOR FIRST HARD DISK
  1404. Size:    16 BYTEs
  1405. Note:    this area is used to store the driver parameter table for the first
  1406.       hard disk if it has been setup as the user-configurable "type 47"
  1407. --------d-M004000E3--------------------------
  1408. MEM 0040h:00E3h - EHD floppy - DRIVE 0 DISKETTE TYPE (from jumpers)
  1409. Size:    BYTE
  1410. SeeAlso: MEM 0040h:00E4h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1411.  
  1412. (Table M053)
  1413. Values for EHD floppy diskette type:
  1414.  01h    undefined by diskette change (360K)
  1415.  02h    1.2M
  1416.  03h    720K
  1417.  04h    1.44M
  1418.  05h    2.88M
  1419. --------d-M004000E4--------------------------
  1420. MEM 0040h:00E4h - EHD floppy - DRIVE 1 DISKETTE TYPE (from jumpers)
  1421. Size:    BYTE
  1422. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1423. --------d-M004000E5--------------------------
  1424. MEM 0040h:00E5h - EHD floppy - DRIVE 2 DISKETTE TYPE (from jumpers)
  1425. Size:    BYTE
  1426. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E6h"EHD"
  1427. --------d-M004000E6--------------------------
  1428. MEM 0040h:00E6h - EHD floppy - DRIVE 3 DISKETTE TYPE (from jumpers)
  1429. Size:    BYTE
  1430. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E5h"EHD"
  1431. --------d-M004000EA--------------------------
  1432. MEM 0040h:00EAh - Omti controller - SEGMENT OF EXTENDED BIOS DATA AREA???
  1433. Size:    WORD
  1434. Note:    drive parameter tables stored in specified segment
  1435. --------b-M004000EC--------------------------
  1436. MEM 0040h:00ECh - Dell 4xxDE BIOS A11 - LOOP COUNT FOR DELAYS
  1437. Size:    WORD
  1438. ----------M004000F0--------------------------
  1439. MEM 0040h:00F0h - INTRA-APPLICATION COMMUNICATION AREA
  1440. Size:    16 BYTEs
  1441. --------B-M00500000--------------------------
  1442. MEM 0050h:0000h - PRINT-SCREEN STATUS
  1443. Size:    BYTE
  1444. --------J-M00500001--------------------------
  1445. MEM 0050h:0001h - NEC PC-9800 series - SCREEN MODE
  1446. Size:    BYTE
  1447. Note:    if bit 3 set, the screen is in high-resolution mode (start memory at
  1448.       segment E000h instead of A000h)
  1449. --------D-M00500004--------------------------
  1450. MEM 0050h:0004h - MS-DOS - LOGICAL DRIVE FOR SINGLE-FLOPPY SYSTEM (A: / B:)
  1451. Size:    BYTE
  1452. --------A-M0050000E--------------------------
  1453. MEM 0050h:000Eh - STATE OF BREAK CHECKING AT START OF BASICA.COM EXECUTION
  1454. Size:    BYTE
  1455. --------A-M0050000F--------------------------
  1456. MEM 0050h:000Fh - BASICA VERSION FLAG
  1457. Size:    BYTE
  1458. Note:    this byte contains the value 02h if BASICA v2.10 is running
  1459. --------A-M00500010--------------------------
  1460. MEM 0050h:0010h - POINTER TO BASIC DATA SEGMENT
  1461. Size:    WORD
  1462. --------A-M00500012--------------------------
  1463. MEM 0050h:0012h - INT 08 VECTOR AT START OF BASICA.COM EXECUTION
  1464. Size:    DWORD
  1465. --------A-M00500016--------------------------
  1466. MEM 0050h:0016h - INT 1B VECTOR AT START OF BASICA.COM EXECUTION
  1467. Size:    DWORD
  1468. --------A-M0050001A--------------------------
  1469. MEM 0050h:001Ah - INT 24 VECTOR AT START OF BASICA.COM EXECUTION
  1470. Size:    DWORD
  1471. --------D-M00600000--------------------------
  1472. MEM 0060h:0000h - DOS 2+ SCRATCH SPACE
  1473. Size:    256 BYTEs
  1474. Note:    used during DOS 2+ boot process               
  1475. --------D-M00600000--------------------------
  1476. MEM 0060h:0000h - DOS 1.x IO.SYS LOAD ADDRESS
  1477. --------D-M00700000--------------------------
  1478. MEM 0070h:0000h - DOS 2+ IO.SYS LOAD ADDRESS
  1479. --------m-m80C00000--------------------------
  1480. MEM 80C00000h - Compaq Deskpro 386 system memory board register
  1481. Size:    BYTE
  1482.  
  1483. 80C00000  R   Diagnostics register (see #M054)
  1484. 80C00000   W  RAM relocation register (see #M055)
  1485.  
  1486. Bitfields for Compaq Deskpro 386 diagnostics register:
  1487. Bit(s)    Description    (Table M054)
  1488.  7    =0 memory expansion board is installed
  1489.  6    =0 second 1 MB of system memory board is installed
  1490.  5-4    base memory
  1491.     00 set to 640 KB
  1492.     01 invalid
  1493.     10 set to 512 KB
  1494.     11 set to 256 KB
  1495.  3    parity correct in byte 3
  1496.  2    parity correct in byte 2
  1497.  1    parity correct in byte 1
  1498.  0    parity correct in byte 0 (in 32-bit double word)
  1499. SeeAlso: #M055
  1500.  
  1501. Bitfields for Compaq Deskpro 386 RAM relocation register:
  1502. Bit(s)    Description    (Table M055)
  1503.  7-2    reserved, always write 1's.
  1504.  1    =0  Write-protect 128-Kbyte RAM at FE0000.
  1505.     =1  Do not write-protect RAM at FE0000.
  1506.  0    =0  Relocate 128-Kbyte block at FE0000 to address 0E0000
  1507.     =1  128-Kbyte RAM is addressed only at FE0000.
  1508. SeeAlso: #M054
  1509. --------V-MA0000000--------------------------
  1510. MEM A000h:0000h - EGA+ GRAPHICS BUFFER
  1511. Size:    65536 BYTEs
  1512. --------V-MB0000000--------------------------
  1513. MEM B000h:0000h - MDA TEXT BUFFER
  1514. Size:    4096 BYTEs
  1515. --------V-MB0000000--------------------------
  1516. MEM B000h:0000h - HGC+ RAMFont-MODE TEXT BUFFER
  1517. Size:    16384 BYTEs
  1518. Note:    in RAMFont Mode 1, the memory is filled with the usual
  1519.       character/attribute pairs; in RAMFont Mode 2, four bits of each
  1520.       'attribute' byte is used to provide 12 bits for specifying the
  1521.       character
  1522. --------V-MB0000000--------------------------
  1523. MEM B000h:0000h - HGC GRAPHICS BUFFER (PAGE 0)
  1524. Size:    32768 BYTEs
  1525. --------V-MB4000000--------------------------
  1526. MEM B400h:0000h - HGC+ RAMFont BUFFER
  1527. Size:    4096 BYTEs
  1528. Notes:    apparently write-only
  1529.     RAMFont Mode 1: 256 characters (8 bits each for char and attribute)
  1530.     RAMFont Mode 2: 3072 characters (12 bits for char, 4 bits for attrib)
  1531.     each character definition is 8 pixels wide (with 9th-column duplication
  1532.       if appropriate) by 8-16 pixels high
  1533. --------V-MB8000000--------------------------
  1534. MEM B800h:0000h - CGA TEXT/GRAPHICS BUFFER
  1535. Size:    16384 BYTEs
  1536. --------V-MB8000000--------------------------
  1537. MEM B800h:0000h - EGA/VGA+ TEXT BUFFER
  1538. Size:    32768 BYTEs
  1539. --------V-MB8000000--------------------------
  1540. MEM B800h:0000h - HGC GRAPHICS BUFFER (PAGE 1)
  1541. Size:    32768 BYTEs
  1542. --------V-MBFF00000--------------------------
  1543. MEM BFF0h:0000h - ET4000/W32 ACL accelerator
  1544. Size:    169 BYTES
  1545.  
  1546. Format of ET4000/W32 memory-mapped registers:
  1547. Offset    Size    Description    (Table M056)
  1548.  00h    DWORD    MMU Registers: memory base pointer register 0 (see #M057)
  1549.  04h    DWORD    MMU Registers: memory base pointer register 1 (see #M057)
  1550.  08h    DWORD    MMU Registers: memory base pointer register 2 (see #M057)
  1551.  0Ch  7 BYTEs    ???
  1552.  13h    BYTE    MMU Registers: MMU control register (see #M058)
  1553.  14h 28 BYTEs    ???
  1554.  30h    BYTE    Non-Queued Registers: suspend/terminate
  1555.  31h    BYTE    Non-Queued Registers: operation state (see #M059) (write-only)
  1556.  32h    BYTE    Non-Queued Registers: sync enable
  1557.  33h    BYTE    ???
  1558.  34h    BYTE    Non-Queued Registers: interrupt mask
  1559.  35h    BYTE    Non-Queued Registers: interrupt status
  1560.  36h    BYTE    Non-Queued Registers: ACL status (read-only)
  1561.         bit 1: read status (RDST) 1=ACL active, queue not empty
  1562.         bit 0: write status (WRST) 1=queue full
  1563.  37h 73 BYTEs    ???
  1564.  80h    DWORD    Queued Registers: pattern address (see #M060)
  1565.  84h    DWORD    Queued Registers: source address (see #M060)
  1566.  88h    WORD    Queued Registers: pattern Y offset (see #M061)
  1567.  8Ah    WORD    Queued Registers: source Y offset (see #M061)
  1568.  8Ch    WORD    Queued Registers: destination y offset (see #M061)
  1569.  8Eh    BYTE    Queued Registers: virtual bus size
  1570.  8Fh    BYTE    Queued Registers: X/Y direction (see #M062)
  1571.  90h    BYTE    Queued Registers: pattern wrap (see #M063)
  1572.  91h    BYTE    ???
  1573.  92h    BYTE    Queued Registers: source wrap (see #M063)
  1574.  93h    BYTE    ???
  1575.  94h    WORD    Queued Registers: X position
  1576.  96h    WORD    Queued Registers: Y position
  1577.  98h    WORD    Queued Registers: X count (see #M064)
  1578.  9Ah    WORD    Queued Registers: Y count (see #M064)
  1579.  9Ch    BYTE    Queued Registers: routine control (see #M065)
  1580.  9Dh    BYTE    Queued Registers: reload control
  1581.  9Eh    BYTE    Queued Registers: background ROP for mixing
  1582.  9Fh    BYTE    Queued Registers: foreground ROP for mixing
  1583.  A0h    DWORD    Queued Registers: destination address
  1584.  A4h    DWORD    Queued Registers: internal pattern address
  1585.  A8h    DWORD    Queued Registers: internal source address
  1586.  
  1587. Bitfields for ET4000/W32 memory base pointer register:
  1588. Bit(s)    Description    (Table M057)
  1589.  31-22    reserved
  1590.  21-0    memory base pointer
  1591. SeeAlso: #M056
  1592.  
  1593. Bitfields for ET4000/W32 MMU control register:
  1594. Bit(s)    Description    (Table M058)
  1595.  7    reserved
  1596.  6-4    linear address control (LAC)
  1597.       bit 6: MMU aperture 2
  1598.       bit 5: MMU aperture 1
  1599.       bit 4: MMU aperture 0
  1600.  3    reserved
  1601.  t2-0    aperture type (APT)
  1602.       bit 2: MMU aperture 2
  1603.       bit 1: MMU aperture 1
  1604.       bit 0: MMU aperture 0
  1605. SeeAlso: #M056 
  1606.  
  1607. Bitfields for ET4000/W32 operation state register:
  1608. Bit(s)    Description    (Table M059)
  1609.  7-4    reserved
  1610.  3    restart operation after ACL-interruption
  1611.  2-1    reserved
  1612.  0    restore status before ACL-interruption
  1613. SeeAlso: #M056
  1614.  
  1615. Bitfields for ET4000/W32 memory address register:
  1616. Bit(s)    Description    (Table M060)
  1617.  31-22    reserved
  1618.  21-0    memory base pointer
  1619. SeeAlso: #M056
  1620.  
  1621. Bitfields for ET4000/W32 offset register:
  1622. Bit(s)    Description    (Table M061)
  1623.  15-12    reserved
  1624.  11-0    Y offset
  1625. SeeAlso: #M056
  1626.  
  1627. Bitfields for ET4000/W32 X/Y direction register:
  1628. Bit(s)    Description    (Table M062)
  1629.  7-2    reserved
  1630.  1    X direction
  1631.  0    Y direction
  1632. SeeAlso: #M056
  1633.  
  1634. Bitfields for ET4000/W32 wrap register:
  1635. Bit(s)    Description    (Table M063)
  1636.  7    reserved
  1637.  6-4    pattern Y wrap
  1638.     000 = 1 line    
  1639.     001 = 2 lines    
  1640.     010 = 4 lines    
  1641.     011 = 8 lines    
  1642.     100 = reserved
  1643.     101 = reserved
  1644.     110 = reserved
  1645.     111 = no wrap 
  1646.  3    reserved
  1647.  2-0    pattern X wrap
  1648.     000 = reserved    
  1649.     001 = reserved    
  1650.     010 = 4 byte    
  1651.     011 = 8 byte    
  1652.     100 = 16 byte    
  1653.     101 = 32 byte    
  1654.     110 = 64 byte    
  1655.     111 = no wrap    
  1656. SeeAlso: #M056
  1657.  
  1658. Bitfields for ET4000/W32 count register:
  1659. Bit(s)    Description    (Table M064)
  1660.  15-12    reserved
  1661.  11-0    pixel count
  1662. SeeAlso: #M056
  1663.  
  1664. Bitfields for ET4000/W32 routine control register:
  1665. Bit(s)    Description    (Table M065)
  1666.  7-6    reserved               
  1667.  5-4    routing of CPU address (ADRO)       
  1668.     00 don't use CPU address       
  1669.     01 CPU address is destination    
  1670.     10 reserved               
  1671.     11 reserved               
  1672.  3    reserved               
  1673.  2-0    routing of CPU data (DARQ)       
  1674.     000 don't use CPU data       
  1675.     001 CPU data is source data       
  1676.     010 CPU data is mixed data       
  1677.     011 reserved               
  1678.     100 CPU data is x-count       
  1679.     101 CPU data is y-count       
  1680.     10x reserved            
  1681. SeeAlso: #M056 
  1682. --------V-MC0000000--------------------------
  1683. MEM C000h:0000h - VIDEO BIOS (EGA and newer)
  1684. Size:    varies (usually 16K-24K for EGA, 24K-32K for VGA)
  1685. --------h-mC0000000--------------------------
  1686. MEM C0000000h -    Weitek "Abacus" math coprocessor
  1687. Size:    4096 BYTEs
  1688. --------B-MC8000000--------------------------
  1689. MEM C800h:0000h - HARD DISK BIOS
  1690. Size:    varies (usually 8K or 16K)
  1691. --------V-MC8001C00--------------------------
  1692. MEM C800h:1C00h - IBM XGA, XGA/A - MEMORY-MAPPED REGISTERS
  1693. Range:    any 8K boundary within segments C000h to DFFFh
  1694. Notes:    The XGA memory mapped registers can be assigned to the last 1K block in
  1695.       in each 8K block in the range of C0000h-DFFFFh; the base offset of
  1696.       the 128 memory mapped lcoation for a particular XGA instance is
  1697.       Segment:(1C00h+instance*80h) for each XGA installed in a system
  1698.       (default instance is 6).  The instance number may be read from the
  1699.       XGA's Programmable Option Select registers
  1700.     The XGA/A (PS/2 adapter) uses the 7KB area below the memory-mapped
  1701.       register area for ROM data; the XGA (PS/2 onboard) has included
  1702.       this area in it's video BIOS ROM.
  1703.     Most of the memory mapped registers are from the graphics coprocessor,
  1704.       while the I/O-registers are for the display controller.
  1705. --------A-MF0006000--------------------------
  1706. MEM F000h:6000h - IBM PC ROM BASIC
  1707. Size:    32768 BYTEs
  1708. --------B-MF000E000--------------------------
  1709. MEM F000h:E000h - ORIGINAL IBM PC ROM BIOS
  1710. Size:    8192 BYTEs
  1711. --------H-MF000FFF0--------------------------
  1712. MEM F000h:FFF0h - RESET JUMP
  1713. Size:    5 BYTEs
  1714. --------B-MF000FFF5--------------------------
  1715. MEM F000h:FFF5h - ASCII BIOS DATE
  1716. Size:    8 BYTEs
  1717. --------B-MF000FFFD--------------------------
  1718. MEM F000h:FFFDh - OFTEN USED TO ENSURE CORRECT BIOS CHECKSUM
  1719. Size:    BYTE
  1720. --------B-MF000FFFE--------------------------
  1721. MEM F000h:FFFEh - MACHINE TYPE CODE
  1722. Size:    BYTE
  1723. SeeAlso: INT 15/AH=C0h
  1724. --------B-MF000xxxx--------------------------
  1725. MEM F000h:xxxxh - AWARD Flash Hook
  1726.  
  1727. Format of AWARD Flash BIOS interface:
  1728. Offset    Size    Description    (Table M066)
  1729.  00h  8 BYTEs    signature "AWDFLASH"
  1730.  08h    WORD    offset in F000h of FAR function: Get ???
  1731.         Return: BL = ??? (00h)
  1732.  0Ah    WORD    offset in F000h of FAR function: ???
  1733.  0Ch    WORD    offset in F000h of FAR function: ???
  1734.  0Eh    WORD    offset in F000h of FAR function: ???
  1735.  10h    WORD    offset in F000h of FAR function: ???
  1736.  12h    WORD    offset in F000h of FAR function: Disable Shadowing
  1737.  14h    WORD    offset in F000h of FAR function: Enable Shadowing
  1738.  16h    WORD    offset in F000h of FAR function: Get ???
  1739.         Return: DS:SI -> ??? (30 bytes?)
  1740.  18h    WORD    offset in F000h of FAR function: Set ???
  1741.         DS:SI -> ??? (appears to be same as previous function)
  1742. Note:    the AWDFLASH utility copies the ROM from F000h and uses the copy
  1743.       instead of the original F000h:xxxxh addresses
  1744. --------B-MF000xxxx--------------------------
  1745. MEM F000h:xxxxh - Asustek Flash Hook
  1746.  
  1747. Format of Asustek Flash interface:
  1748. Offset    Size    Description    (Table M067)
  1749.  00h 10 BYTEs    signature "ASUS_FLASH"
  1750.  0Ah  6 BYTEs    blanks (padding)
  1751.  10h    WORD    interface version??? (current PFLASH.EXE requires 0101h)
  1752.  12h    DWORD    -> position-independent code to enable shadowing
  1753.  16h    WORD    size of code pointed at by previous field (<= 0400h)
  1754.  18h    DWORD    -> position-independent code to disable shadowing
  1755.  1Ch    WORD    size of code pointed at by previous field (<= 0400h)
  1756. --------p-Mxxxxxxx0--------------------------
  1757. MEM xxxxh:xxx0h - Advanced Configuration and Power Interface Spec (ACPI) v0.9
  1758. Range: any paragraph boundary in the first kilobyte of the XBDA, the last
  1759.     kilobyte of conventional memory, or from E000h:0000h to F000h:FFE0h
  1760. Note:    scan paragraph boundaries for the signature string "RSD PTR ", followed
  1761.       by a valid Root System Description Pointer structure (see #M068)
  1762. SeeAlso: INT 15/AX=E820h
  1763.  
  1764. Format of ACPI Root System Description Pointer structure:
  1765. Offset    Size    Description    (Table M068)
  1766.  00h  8 BYTEs    signature "RSD PTR "
  1767.  08h    BYTE    checksum (entire structure, including this byte, must
  1768.           add up to zero)
  1769.  09h  6 BYTEs    OEM identifier
  1770.  0Fh    BYTE    reserved
  1771.  10h    DWORD    physical address of Root System Description Table (see #M070)
  1772. SeeAlso: #M070
  1773.  
  1774. Format of ACPI System Description Table header:
  1775. Offset    Size    Description    (Table M069)
  1776.  00h  4 BYTEs    signature
  1777.  04h    DWORD    length of table in bytes, including this header
  1778.  08h    BYTE    minor version of specification corresponding to signature
  1779.  09h    BYTE    major version of specification corresponding to signature
  1780.  0Ah  6 BYTEs    OEM identification
  1781.  10h  8 BYTEs    OEM table identifier
  1782.  18h  4 BYTEs    OEM revision number
  1783. SeeAlso: #M068,#M070,#M073,#M071,#M074,#M075,#M077
  1784.  
  1785. Format of ACPI Root System Description Table:
  1786. Offset    Size    Description    (Table M070)
  1787.  00h 28 BYTEs    System Description Table Header (see #M069)
  1788.         signature "RSDT"
  1789.  1Ch  N DWORDs    physical addresses of other description tables
  1790.         (see #M073,#M071,#M074,#M075,#M077,#M078)
  1791. Note:    the number of table pointers is implied by the table length
  1792.      field in the header (at offset 04h)
  1793. SeeAlso: #M068
  1794.  
  1795. Format of ACPI Fixed ACPI Description Table:
  1796. Offset    Size    Description    (Table M071)
  1797.  00h 28 BYTEs    System Description Table Header (see #M069)
  1798.         signature "FACP"
  1799.  1Ch    DWORD    physical address of the Firmware ACPI Control Structure
  1800.           (see #M075)
  1801.  20h    DWORD    physical address of the Differentiated System Description Table
  1802.           (see #M073)
  1803.  24h    BYTE    interrupt mode
  1804.         00h dual PIC (industry-standard AT-type)
  1805.         01h multiple APIC (see #M074)
  1806.  25h    BYTE    reserved
  1807.  26h    WORD    system vector of SCI interrupt
  1808.  28h    DWORD    I/O port address of SMI command port
  1809.  2Ch    BYTE    value to write to SMI comamnd port to disable SMI ownership
  1810.           of ACPI hardware registers
  1811.  2Dh    BYTE    value to write to SMI comamnd port to re-enable SMI ownership
  1812.           of ACPI hardware registers
  1813.  2Eh  2 BYTEs    reserved
  1814.  30h    DWORD    I/O port address of Power Management 1a Event Register Block
  1815.  34h    DWORD    I/O port address of Power Management 1b Event Register Block
  1816.         (optional, 00000000h if not supported)
  1817.  38h    DWORD    I/O port address of Power Management 1a Control Register Block
  1818.  3Ch    DWORD    I/O port address of Power Management 1b Control Register Block
  1819.         (optional, 00000000h if not supported)
  1820.  40h    DWORD    I/O port address of Power Management 2 Control Register Block
  1821.         (optional, 00000000h if not supported)
  1822.  44h    DWORD    I/O port address of Power Management Timer Control Reg. Block
  1823.  48h    DWORD    I/O port address of Generic Purpose Event 0 Register Block
  1824.         (optional, 00000000h if not supported)
  1825.  4Ch    DWORD    I/O port address of Generic Purpose Event 1 Register Block
  1826.         (optional, 00000000h if not supported)
  1827.  50h    BYTE    size of Power Management 1a/1b Event Register Block (>= 4)
  1828.  51h    BYTE    size of Power Management 1a/1b Control Register Block (>= 1)
  1829.  52h    BYTE    size of Power Management 2 Control Register Block (>= 1)
  1830.  53h    BYTE    size of Power Management Timer Control Register Block (>= 1)
  1831.  54h    BYTE    size of Generic Purpose Event 0 Register Block (multiple of 2)
  1832.  55h    BYTE    size of Generic Purpose Event 1 Register Block (multiple of 2)
  1833.  56h    BYTE    offset within General Purpose Event model for GPE1-based events
  1834.  57h    BYTE    reserved
  1835.  58h    WORD    worst-case hardware latency (microseconds) for entering/leaving
  1836.           state C2; >100 if C2 not supported
  1837.  5Ah    WORD    worst-case hardware latency (microseconds) for entering/leaving
  1838.           state C3; >100 if C3 not supported
  1839.  5Ch    WORD    size of contiguous cacheable memory which must be read to flush
  1840.           all dirty lines from a processor's memory cache; use if
  1841.           fixed feature flag WBINVD (see #M072) is clear
  1842.         0000h if flushing not supported
  1843.  5Eh    WORD    memory stride size (in bytes) to flush processor's memory cache
  1844.  60h    BYTE    index of processor's duty cycle setting within
  1845.           processor's P_CNT register
  1846.  61h    BYTE    size of processor's duty cycle setting in bits
  1847.  62h    BYTE    index within RTC CMOS RAM of the day-of-month alarm value
  1848.         00h = not supported
  1849.  63h    BYTE    index within RTC CMOS RAM of the month-of-year alarm value
  1850.         00h = not supported
  1851.  64h    BYTE    index within RTC CMOS RAM of the century alarm value
  1852.         00h = not supported
  1853.  65h    BYTE    reserved
  1854.  66h    DWORD    fixed feature flags (see #M072)
  1855. SeeAlso: #M068
  1856.  
  1857. Bitfields for ACPI Fixed Feature Flags:
  1858. Bit(s)    Description    (Table M072)
  1859.  0    WBINVD instruction is currectly supported by processor
  1860.  1    WBINVD instruction flushes all caches and maintains coherency, but
  1861.       does not guarantee invalidation of all caches
  1862.  2    all processors support C1 sleep state
  1863.  3    C2 sleep state is configured to work on multiprocessor system
  1864.  4    power button is handled as a generic feature
  1865.  5    RTC wake-up state is not supported in fixed register space
  1866.  6    TMR_VAL size
  1867.     =0 24 bits
  1868.     =1 32 bits
  1869.  7-31    reserved
  1870. SeeAlso: #M071
  1871.  
  1872. Format of ACPI Differentiated System Description Table:
  1873. Offset    Size    Description    (Table M073)
  1874.  00h 28 BYTEs    System Description Table Header (see #M069)
  1875.         signature "DSDT"
  1876.  1Ch    !!! details to follow
  1877. SeeAlso: #M068
  1878.  
  1879. Format of ACPI Multiple APIC Description Table:
  1880. Offset    Size    Description    (Table M074)
  1881.  00h 28 BYTEs    System Description Table Header (see #M069)
  1882.         signature "APIC"
  1883.  1Ch    !!! details to follow
  1884. SeeAlso: #M068
  1885.  
  1886. Format of ACPI Firmware ACPI Control Structure:
  1887. Offset    Size    Description    (Table M075)
  1888.  00h  4 BYTEs    signature "FACS"
  1889.  04h    DWORD    length of entire structure in bytes (>= 40h)
  1890.  08h    DWORD    value of system's hardware signature at last boot
  1891.  0Ch    DWORD    real-mode ACPI OS waking vector
  1892.         if nonzero, control is transferred to this address on next BIOS
  1893.           POST
  1894.  10h    DWORD    global lock (see #M076)
  1895.  14h 44 BYTEs    reserved (0)
  1896. Note:    this structure is located on a 64-byte boundary anywhere in the
  1897.       first 4GB of memory
  1898. SeeAlso: #M068
  1899.  
  1900. Bitfields for ACPI Embedded Controller Arbitration Structure:
  1901. Bit(s)    Description    (Table M076)
  1902.  0    request for Global Lock ownership is pending
  1903.  1    Global Lock is currently owned
  1904.  2-31    reserved
  1905. SeeAlso: #M075
  1906.  
  1907. Format of ACPI Persistent System Description Table:
  1908. Offset    Size    Description    (Table M077)
  1909.  00h 28 BYTEs    System Description Table Header (see #M069)
  1910.         signature "PSDT"
  1911.  1Ch    !!! details to follow (acpi.pdf p.92)
  1912. SeeAlso: #M068
  1913.  
  1914. Format of ACPI Secondary System Description Table:
  1915. Offset    Size    Description    (Table M078)
  1916.  00h 28 BYTEs    System Description Table Header (see #M069)
  1917.         signature "SSDT"
  1918.  1Ch    !!! details to follow
  1919. SeeAlso: #M068
  1920. ----------Mxxxxxxx0--------------------------
  1921. MEM xxxxh:xxx0h - Multiprocessor Specification - FLOATING POINTER STRUCTURE
  1922. Range: any paragraph boundary in the first kilobyte of the XBDA, the last
  1923.     kilobyte of conventional memory, or from F000h:0000h to F000h:FFE0h
  1924. InstallCheck: scan paragraph boundaries for the signature string "_MP_",
  1925.       followed by a valid floating pointer structure (see #M079)
  1926. SeeAlso: MEM FEE00000h
  1927.  
  1928. Format of Multiprocessor Specification Floating Pointer structure:
  1929. Offset    Size    Description    (Table M079)
  1930.  00h  4 BYTEs    signature "_MP_"
  1931.  04h    DWORD    physical address of MP configuration table (see #M080)
  1932.         00000000h if no configuration table
  1933.  08h    BYTE    length of this structure in paragraphs (currently 01h)
  1934.  09h    BYTE    revision of MP specification supported
  1935.         01h = v1.1
  1936.         04h = v1.4
  1937.  0Ah    BYTE    checksum (8-bit sum of entire structure, including this
  1938.           byte, must equal 00h)
  1939.  0Bh    BYTE    MP feature byte 1: system configuration type
  1940.         00h: MP configuration table present
  1941.         nonzero: default configuration implemented by system
  1942.  0Ch    BYTE    MP feature byte 2
  1943.         bit 7: IMCR present
  1944.         bits 6-0: reserved (0)
  1945.  0Dh  3    BYTEs    MP feature bytes 3-5 (reserved, must be 00h)
  1946.  
  1947. Format of Multiprocessor Specification configuration table header:
  1948. Offset    Size    Description    (Table M080)
  1949.  00h  4 BYTEs    signature "PCMP"
  1950.  04h    WORD    length of base configuration table in bytes, including
  1951.           this header
  1952.  06h    BYTE    revision of MP specification supported
  1953.         01h = v1.1
  1954.         04h = v1.4
  1955.  07h    BYTE    checksum of entire base configuration table
  1956.  08h  8 BYTEs    OEM identifier
  1957.  10h 12 BYTEs    product ID
  1958.  1Ch    DWORD    physical address to OEM-defined configuration table
  1959.         00000000h if not present
  1960.  20h    WORD    size of base OEM table in bytes (0000h if not present)
  1961.  22h    WORD    number of entries in variable portion of base table
  1962.  24h    DWORD    address of local APIC (see also MEM FEE0h:0020h)
  1963.  28h    WORD    length of extended entries following end of base table
  1964.           (in bytes)
  1965.  2Ah    BYTE    checksum for extended table entries (includes only
  1966.           extended entries following base table)
  1967.  2Ch    var    configuration table entries (see #M081)
  1968. SeeAlso: #M079
  1969.  
  1970. Format of Multiprocessor Specification configuration table entries:
  1971. Offset    Size    Description    (Table M081)
  1972.  00h    BYTE    entry type code
  1973.         00h processor
  1974.         01h bus
  1975.         02h I/O APIC
  1976.         03h I/IO interrupt assignment
  1977.         04h local interrupt assignment
  1978.         80h system address space mapping
  1979.         81h bus hierarchy descriptor
  1980.         82h compatibility bus address space modifier
  1981. ---processor---
  1982.  01h    BYTE    local APIC identifier
  1983.  02h    BYTE    local APIC version
  1984.  03h    BYTE    CPU flags
  1985.         bit 0: processor usable
  1986.         bit 1: bootstrap processor
  1987.  04h    WORD    CPU type
  1988.         bits 11-8: CPU family
  1989.         bits 7-4: CPU model
  1990.         bits 3-0: stepping
  1991.         (bits 11-0 all set indicate non-Intel-compatible CPU)
  1992.  06h  2 BYTEs    unused
  1993.  08h    DWORD    feature flags (as returned by Pentium CPUID instruction)
  1994.  0Ch  8 BYTEs    reserved
  1995. ---bus---
  1996.  01h    BYTE    bus ID (assigned sequentially from 00h by BIOS)
  1997.  02h  6 BYTEs    bus type (blank-padded ASCII string) (see #M082)
  1998. ---I/O APIC---
  1999.  01h    BYTE    APIC identifier
  2000.  02h    BYTE    APIC version
  2001.  03h    BYTE    I/O APIC flags
  2002.         bit 0: enabled
  2003.         bits 7-1: reserved
  2004.  04h    DWORD    base address for APIC
  2005. ---I/O,local interrupt assignment---
  2006.  01h    BYTE    interrupt type
  2007.         00h vectored interrupt (from APIC)
  2008.         01h NMI
  2009.         02h system management interrupt
  2010.         03h vectored interrupt (from external PIC)
  2011.  02h    BYTE    APIC control (see #M083)
  2012.  03h    BYTE    unused
  2013.  04h    BYTE    source bus identifier
  2014.  05h    BYTE    source bus IRQ
  2015.  06h    BYTE    destination I/O APIC identifier
  2016.  07h    BYTE    destination I/O APIC interrupt pin number
  2017. ---system address space mapping---
  2018.  01h    BYTE    entry length (14h)
  2019.  02h    BYTE    bus ID
  2020.  03h    BYTE    address type (00h I/O, 01h memory, 02h prefetch)
  2021.  04h    QWORD    starting address of region visible to bus
  2022.  0Ch    QWORD    length of region visible to bus
  2023. ---bus hierarchy descriptor---
  2024.  01h    BYTE    entry length (08h)
  2025.  02h    BYTE    bus ID
  2026.  03h    BYTE    bus information
  2027.         bit 0: subtractive decoding
  2028.  04h    BYTE    ID of parent bus
  2029.  05h  3 BYTEs    reserved
  2030. ---compatibility bus address space modifier---
  2031.  01h    BYTE    entry length (08h)
  2032.  02h    BYTE    bus ID
  2033.  03h    BYTE    address modifier
  2034.         bit 0: remove address ranges in predefined range list from
  2035.               bus's address space
  2036.  04h    DWORD    number indicating predefined address space range to be removed
  2037.         00h ISA-compatible I/O range (x100h-x3FFh and aliases)
  2038.         01h VGA-compatible I/O range (x3B0h-x3BBh,x3C0h-x3DFh,aliases)
  2039. SeeAlso: #M080
  2040.  
  2041. (Table M082)
  2042. Values for Multiprocessor Specification bus name:
  2043.  "CBUS"        Corollary CBus
  2044.  "CBUSII"    Corollary CBus II
  2045.  "EISA"
  2046.  "FUTURE"    IEEE FutureBus
  2047.  "INTERN"    internal bus
  2048.  "ISA"
  2049.  "MBI"        Multibus I
  2050.  "MBII"        Multibus II
  2051.  "MCA"        Microchannel
  2052.  "MPI"
  2053.  "MPSA"
  2054.  "NUBUS"    Apple Macintosh NuBus
  2055.  "PCI"
  2056.  "PCMCIA"
  2057.  "TC"        DEC TurboChannel
  2058.  "VL"        VESA Local Bus
  2059.  "VME"        VMEbus
  2060.  "XPRESS"    Express System Bus
  2061. SeeAlso: #M081
  2062.  
  2063. Bitfields for Multiprocessor Specification APIC control:
  2064. Bit(s)    Description    (Table M083)
  2065.  1-0    input signal polarity
  2066.     00 conforms to bus specification
  2067.     01 active high
  2068.     10 reserved
  2069.     11 active low
  2070.  3-2    trigger mode
  2071.     00 conforms to bus specification
  2072.     01 edge-triggered
  2073.     10 reserved
  2074.     11 level-triggered
  2075. SeeAlso: #M081
  2076. --------X-Mxxxxxxx0--------------------------
  2077. MEM xxxxh:xxx0h - PCI IRQ Routing Table Specification v1.0
  2078. Size:    N paragraphs (N >= 2)
  2079. Range:    any paragraph boundary within the range F0000h to FFFFFh
  2080. InstallCheck: scan for the signature string "$PIR" followed by a valid
  2081.       PCI IRQ Routing Table
  2082.  
  2083. Format of PCI IRQ Routing Table v1.0:
  2084. Offset    Size    Description    (Table M084)
  2085.  00h  4 BYTEs    signature "$PIR"
  2086.  04h    WORD    version (0100h for v1.0)
  2087.  06h    WORD    table size in bytes
  2088.  08h    BYTE    bus number for PCI Interrupt Router
  2089.  09h    BYTE    device/function number for PCI Interrupt Router
  2090.  0Ah    WORD    bitmap of PCI-exclusive IRQs (bit 0 = IRQ0, etc.)
  2091.  0Ch    WORD    PCI vendor ID for compatible PCI Interrupt Router
  2092.  0Eh    WORD    PCI device ID for compatible PCI Interrupt Router
  2093.  10h    DWORD    Miniport data
  2094.  14h 11 BYTEs    reserved (0)
  2095.  1Fh    BYTE    checksum (set to make 8-bit sum of bytes in entire structure
  2096.           equal 00h)
  2097. --- optional data ---
  2098.  20h 16 BYTEs    first slot entry (see #M085)
  2099.     ...
  2100.      16 BYTEs    Nth slot entry
  2101.  
  2102. Format of PCI IRQ Routing Table slot entry:
  2103. Offset    Size    Description    (Table M085)
  2104.  00h    BYTE    PCI bus number
  2105.  01h    BYTE    PCI device number (bits 7-3)
  2106.  02h    BYTE    link value for INTA#
  2107.  03h    WORD    IRQ bitmap for INTA#
  2108.  05h    BYTE    link value for INTB#
  2109.  06h    WORD    IRQ bitmap for INTB#
  2110.  08h    BYTE    link value for INTC#
  2111.  09h    WORD    IRQ bitmap for INTC#
  2112.  0Bh    BYTE    link value for INTD#
  2113.  0Ch    WORD    IRQ bitmap for INTD#
  2114.  0Eh    BYTE    slot number (00h = motherboard, other = vendor-specific)
  2115.  0Fh    BYTE    reserved
  2116. SeeAlso: #M084,#0925 at INT 1A/AX=B406h
  2117. --------H-mFEC00000--------------------------
  2118. MEM FEC00000h - Pentium - 82379AB I/O APIC - I/O REGISTER SELECT
  2119. Size:    DWORD
  2120. Desc:    bits 7-0 of the I/O Register Select memory location specify which
  2121.       of the APIC's registers appears in the I/O Window at FExxx010h
  2122. Range:    the Multiprocessor Specification calls for I/O APICs to be memory-
  2123.       mapped on 4K boundaries between FEC00000h and FEDFC000h; the Intel
  2124.       82379AB I/O APIC can be memory-mapped on any 1K boundary within
  2125.       FEC0000h-FEC0F800h
  2126. SeeAlso: MEM FEC00010h,MEM FEE00000h,MEM xxxxh:xxx0h"Multiprocessor"
  2127. --------H-mFEC00010--------------------------
  2128. MEM FEC00010h - Pentium - 82379AB I/O APIC - I/O WINDOW
  2129. Size:    DWORD
  2130. Range:    the Multiprocessor Specification calls for I/O APICs to be memory-
  2131.       mapped on 4K boundaries between FEC00000h and FEDFC000h
  2132. SeeAlso: MEM FEC00010h
  2133.  
  2134. (Table M086)
  2135. Values for Intel 82379AB I/O APIC registers:
  2136.  00h    APIC ID
  2137.  01h    APIC version (read-only)
  2138.  02h    APIC arbitration ID (read-only)
  2139.  10h-11h    redirection table entry 0 (10h=low DWORD, 11h=high DWORD)
  2140.  12h-13h    redirection table entry 1
  2141.  ...
  2142.  2Eh-2Fh    redirection table entry 15
  2143. --------H-mFEE00000--------------------------
  2144. MEM FEE00000h - Pentium - LOCAL APIC
  2145. Size:    4096 BYTEs
  2146. Notes:    the Advanced Programmable Interrupt Controller built into
  2147.       multiprocessor-capable Pentiums (P54C, etc. -- basically 75MHz and
  2148.       faster Pentiums) maps its registers into the top of the physical
  2149.       address space on data reads and writes, but not on code reads;
  2150.       data accesses to the APIC registers do not cause external bus
  2151.       cycles
  2152.     the APIC's registers are only visible when the APIC is enabled (which
  2153.       occurs at CPU reset when external data lines contain proper signals)
  2154.     the PentiumPro (P6) permits the address at which the local APIC
  2155.       appears to be changed with Model-Specific Register 0000001Bh
  2156. SeeAlso: MEM FEC00000h,MEM FEE00020h,MEM xxxxh:xxx0h"Multiprocessor"
  2157. SeeAlso: MSR 0000001Bh
  2158. --------H-mFEE00020--------------------------
  2159. MEM FEE00020h - Pentium - LOCAL APIC - LOCAL APIC ID REGISTER
  2160. SeeAlso: MEM FEE00030h
  2161. --------H-mFEE00030--------------------------
  2162. MEM FEE00030h - Pentium - LOCAL APIC - LOCAL APIC VERSION REGISTER
  2163. Note:    read-only
  2164. SeeAlso: MEM FEE00020h
  2165. --------H-mFEE00040--------------------------
  2166. MEM FEE00040h - Pentium - LOCAL APIC - RESERVED
  2167. SeeAlso: MEM FEE00000h
  2168. --------H-mFEE00050--------------------------
  2169. MEM FEE00050h - Pentium - LOCAL APIC - RESERVED
  2170. SeeAlso: MEM FEE00000h
  2171. --------H-mFEE00060--------------------------
  2172. MEM FEE00060h - Pentium - LOCAL APIC - RESERVED
  2173. SeeAlso: MEM FEE00000h
  2174. --------H-mFEE00070--------------------------
  2175. MEM FEE00070h - Pentium - LOCAL APIC - RESERVED
  2176. SeeAlso: MEM FEE00000h
  2177. --------H-mFEE00080--------------------------
  2178. MEM FEE00080h - Pentium - LOCAL APIC - TASK PRIORITY REGISTER (TPR)
  2179. --------H-mFEE00090--------------------------
  2180. MEM FEE00090h - Pentium - LOCAL APIC - ARBITRATION PRIORITY REGISTER (APR)
  2181. Note:    read-only
  2182. --------H-mFEE000A0--------------------------
  2183. MEM FEE000A0h - Pentium - LOCAL APIC - END OF INTERRUPT REGISTER (EOI)
  2184. Note:    write-only
  2185. --------H-mFEE000A0--------------------------
  2186. MEM FEE000A0h - Pentium - LOCAL APIC - PROCESSOR PRIORITY REGISTER (PPR)
  2187. Note:    read-only
  2188. SeeAlso: MEM FEE00000h
  2189. --------H-mFEE000B0--------------------------
  2190. MEM FEE000B0h - Pentium - LOCAL APIC - RESERVED
  2191. SeeAlso: MEM FEE00000h
  2192. --------H-mFEE000C0--------------------------
  2193. MEM FEE000C0h - Pentium - LOCAL APIC - REMOTE READ REGISTER
  2194. Note:    read-only
  2195. --------H-mFEE000D0--------------------------
  2196. MEM FEE000D0h - Pentium - LOCAL APIC - LOGICAL DURATION REGISTER (LDR)
  2197. SeeAlso: MEM FEE00000h
  2198. --------H-mFEE000E0--------------------------
  2199. MEM FEE000E0h - Pentium - LOCAL APIC - DESTINATION FORMAT REGISTER (DFR)
  2200.     bits 27-0: read-only
  2201.     bits 31-28: read-write
  2202. --------H-mFEE000F0--------------------------
  2203. MEM FEE000F0h - Pentium - LOCAL APIC - SPURIOUS INTERRUPT VECTOR REGISTER
  2204.     bits 3-0, read-only
  2205.     bits 9-4, read/write
  2206. --------H-mFEE00100--------------------------
  2207. MEM FEE00100h - Pentium - LOCAL APIC - IN-SERVICE REGISTER (ISR)
  2208. Size:    128 BYTEs
  2209. Note:    read-only
  2210. SeeAlso: MEM FEE00200h
  2211. --------H-mFEE00180--------------------------
  2212. MEM FEE00180h - Pentium - LOCAL APIC - TRIGGER MODE REGISTER (TMR)
  2213. Size:    128 BYTEs
  2214. Note:    read-only
  2215. SeeAlso: MEM FEE00000h
  2216. --------H-mFEE00200--------------------------
  2217. MEM FEE00200h - Pentium - LOCAL APIC - INTERRUPT REQUEST REGISTER (IRR)
  2218. Size:    128 BYTEs
  2219. Note:    read-only
  2220. SeeAlso: MEM FEE00100h
  2221. --------H-mFEE00280--------------------------
  2222. MEM FEE00280h - Pentium - LOCAL APIC - ERROR STATUS REGISTER
  2223. Size:    4 BYTEs
  2224. Note:    read-only
  2225.  
  2226. Bitfields for Pentium APIC error status register:
  2227. Bit(s)    Description    (Table M087)
  2228.  0    send checksum error
  2229.  1    receive checksum error
  2230.  2    send accept error
  2231.  3    receive accept error
  2232.  4    reserved
  2233.  5    send illegal vector
  2234.  6    receive illegal vector
  2235.  7    illegal register address
  2236.  31-8    reserved
  2237. --------H-mFEE00300--------------------------
  2238. MEM FEE00300h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  2239. Size:    4 BYTEs
  2240. Note:    this is the low half of the 64-bit ICR
  2241. SeeAlso: MEM FEE00310h,#M088
  2242.  
  2243. Bitfields for Pentium APIC Interrupt Command Register:
  2244. Bit(s)    Description    (Table M088)
  2245.  7-0    interrupt vector number
  2246.  10-8    delivery mode (see #M089)
  2247.  11    destination mode
  2248.  12    delivery status (read-only)
  2249.     1 = transfer pending
  2250.  13    reserved
  2251.  14    level (0 = INIT Level Deassert message, 1 = anything else)
  2252.  15    trigger mode (1)
  2253.  17-16    remote read status (read-only)
  2254.  19-18    destination shorthand
  2255.     00 as specified by destination field
  2256.     01 self
  2257.     10 all including self
  2258.     11 all except self
  2259.  55-20    reserved
  2260.  63-56    destination for interrupt request or message
  2261. SeeAlso: #M091
  2262.  
  2263. (Table M089)
  2264. Values for Pentium APIC delivery mode:
  2265.  000b    fixed
  2266.  001b    lowest-priority
  2267.  010b    SMI
  2268.  011b    remote read
  2269.  100b    NMI
  2270.  101b    INIT
  2271.  110b    start up
  2272.  111b    reserved
  2273. SeeAlso: #M088
  2274. --------H-mFEE00310--------------------------
  2275. MEM FEE00310h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  2276. Size:    4 BYTEs
  2277. Note:    this is the high half of the 64-bit ICR
  2278. SeeAlso: MEM FEE00300h,#M088
  2279. --------H-mFEE00320--------------------------
  2280. MEM FEE00320h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 0 (TIMER)
  2281. Size:    4 BYTEs
  2282. SeeAlso: MEM FEE00350h,MEM FEE00370h,MEM FEE003E0h,INT 70h
  2283.  
  2284. Bitfields for Pentium APIC timer local vector entry:
  2285. Bit(s)    Description    (Table M090)
  2286.  7-0    interrupt vector number
  2287.  11-8    reserved
  2288.  12    delivery status (read-only)
  2289.     1 = interrupt being sent to APIC
  2290.  15-13    reserved
  2291.  16    interrupt delivery disabled
  2292.  17    timer mode (0=one-shot, 1=periodic)
  2293.  31-18    reserved
  2294. SeeAlso: #M092,#M091
  2295. --------H-mFEE00330--------------------------
  2296. MEM FEE00330h - Pentium - LOCAL APIC - RESERVED
  2297. SeeAlso: MEM FEE00000h
  2298. --------H-mFEE00340--------------------------
  2299. MEM FEE00340h - Pentium - LOCAL APIC - RESERVED
  2300. SeeAlso: MEM FEE00000h
  2301. --------H-mFEE00350--------------------------
  2302. MEM FEE00350h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 1 (LINT0)
  2303. Size:    4 BYTEs
  2304. SeeAlso: MEM FEE00320h,MEM FEE00360h
  2305.  
  2306. Bitfields for Pentium APIC LINTx local vector entry:
  2307. Bit(s)    Description    (Table M091)
  2308.  7-0    interrupt vector number
  2309.  10-8    delivery mode
  2310.     000 fixed
  2311.     100 NMI
  2312.     111 external interrupt (8259A-compatibility)
  2313.  11    reserved
  2314.  12    delivery status (read-only)
  2315.     1 = interrupt being sent to APIC
  2316.  13    interrupt pin is active low
  2317.  14    remote IRR
  2318.  15    trigger mode
  2319.     0 edge-sensitive
  2320.     1 level-sensitive
  2321.  16    interrupt delivery disabled
  2322.  31-17    reserved
  2323. SeeAlso: #M090
  2324. --------H-mFEE00360--------------------------
  2325. MEM FEE00360h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 2 (LINT1)
  2326. Size:    4 BYTEs
  2327. SeeAlso: MEM FEE00350h,MEM FEE00370h,#M091
  2328. --------H-mFEE00370--------------------------
  2329. MEM FEE00370h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 3 (Error)
  2330. Size:    4 BYTEs
  2331. SeeAlso: MEM FEE00320h,MEM FEE00370h
  2332. --------H-mFEE00380--------------------------
  2333. MEM FEE00380h - Pentium - LOCAL APIC - INITIAL COUNT REGISTER (ICR) TIMER
  2334. Desc:    timer start value, which together with the Divide Configuration
  2335.       Register also determines its period when periodic mode has been
  2336.       selected
  2337. SeeAlso: MEM FEE00000h,MEM FEE00390h
  2338. --------H-mFEE00390--------------------------
  2339. MEM FEE00390h - Pentium - LOCAL APIC - CURRENT COUNT REGISTER (CCR) TIMER
  2340. Desc:    current timer count; when this value reaches zero, an interrupt is
  2341.       generated
  2342. Note:    read-only
  2343. SeeAlso: MEM FEE00380h
  2344. --------H-mFEE003A0--------------------------
  2345. MEM FEE003A0h - Pentium - LOCAL APIC - RESERVED
  2346. SeeAlso: MEM FEE00000h
  2347. --------H-mFEE003B0--------------------------
  2348. MEM FEE003B0h - Pentium - LOCAL APIC - RESERVED
  2349. SeeAlso: MEM FEE00000h
  2350. --------H-mFEE003C0--------------------------
  2351. MEM FEE003C0h - Pentium - LOCAL APIC - RESERVED
  2352. SeeAlso: MEM FEE00000h
  2353. --------H-mFEE003D0--------------------------
  2354. MEM FEE003D0h - Pentium - LOCAL APIC - RESERVED
  2355. SeeAlso: MEM FEE00000h
  2356. --------H-mFEE003E0--------------------------
  2357. MEM FEE003E0h - Pentium - LOCAL APIC - TIMER DIVIDE CONFIGURATION REGISTER
  2358. SeeAlso: MEM FEE00000h,MEM FEE00320h
  2359.  
  2360. Bitfields for Pentium APIC timer divide configuration:
  2361. Bit(s)    Description    (Table M092)
  2362.  3,1,0    divisor
  2363.     000 divide by 2
  2364.     001 by 4
  2365.     010 by 8
  2366.     ...
  2367.     110 by 128
  2368.     111 by 1
  2369.  2    zero (0)
  2370.  31-4    reserved
  2371. Note:    the divisor determines the timer's time base relative to the processor
  2372.       clock
  2373. SeeAlso: #M090
  2374. ----------MFFFF0010--------------------------
  2375. MEM FFFFh:0010h - HIGH MEMORY AREA (HMA)
  2376. Size:    65520 BYTEs
  2377. --------!---CONTRIBUTORS---------------------
  2378. Robin Walker    <rdhw@cus.cam.ac.uk> ORIGINAL FILE
  2379. Wim Osterholt    <wim@djo.wtm.tudelft.nl> or Wim Osterholt 2:512/56
  2380.     EHD floppy = 'KEGAN 4.0M Floppy Drive Controller.',
  2381.              'ACME FX4-K7tb2 v:2.5 11/5/91'
  2382. Stanley Appel    <appel@stack.urc.tue.nl>
  2383. Matthias Paul    <mpaul@ibh.rwth-aachen.de>
  2384. --------!---Admin----------------------------
  2385. Highest Table Number = M092
  2386. --------!---FILELIST-------------------------
  2387. Please redistribute all of the files comprising the interrupt list (listed at
  2388. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  2389. quartet of archives named INTER54A through INTER54D (preferably the original
  2390. authenticated PKZIP archives), and the utility and hypertext programs in
  2391. three additional archives called INTER54E.ZIP to INTER54G.ZIP
  2392.  
  2393. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  2394. --------!---CONTACT_INFO---------------------
  2395. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  2396. UUCP: {uunet,harvard}!pobox.com!ralf
  2397. FIDO: Ralf Brown 1:129/26.1
  2398.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  2399.     unless you address it to me)
  2400. CIS:  >INTERNET:ralf@pobox.com
  2401.